├── COMMAND_REFERENCE ├── LICENSE ├── Makefile ├── Makefile.inc ├── README ├── README.BUILD ├── TODO ├── VALID_CONFIGS ├── cmc ├── Makefile ├── Makefile.inc ├── README ├── amo_popcount │ ├── LICENSE │ ├── Makefile │ ├── README │ └── cmc.c ├── dynamic_template │ ├── LICENSE │ ├── Makefile │ ├── README │ └── cmc.c ├── fullempty │ ├── COMMANDS.README │ ├── ClrXX │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── IncFF │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── Makefile │ ├── Makefile.inc │ ├── ReadEF │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── ReadFE │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── ReadFF │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── ReadXX │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── WriteEF │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── WriteFF │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── WriteXE │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ └── WriteXF │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c ├── mutex │ ├── Makefile │ ├── Makefile.inc │ ├── hmc_lock │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ ├── hmc_trylock │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c │ └── hmc_unlock │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ └── cmc.c └── template │ ├── LICENSE │ ├── Makefile │ ├── README │ └── cmc.c ├── configs ├── Makefile.inc.linux_jenkins ├── Makefile.inc.linux_jenkins_6.0.0 ├── Makefile.inc.linux_jenkins_6.1.0 ├── Makefile.inc.linux_jenkins_7.0.0 ├── Makefile.inc.linux_jenkins_7.1.0 ├── Makefile.inc.linux_jenkins_7.2.0 ├── Makefile.inc.linux_jenkins_TOT ├── Makefile.inc.osx_jenkins └── Makefile.inc.template ├── doxygen └── hmc_sim.cfg ├── gnuplot ├── alltrace.gnuplot └── alltrace.sh ├── include ├── hmc_sim.h ├── hmc_sim_macros.h ├── hmc_sim_tecplot.h └── hmc_sim_types.h ├── src ├── hmc_bank_conflict.c ├── hmc_clock.c ├── hmc_cmc.c ├── hmc_config.c ├── hmc_config_devs.c ├── hmc_config_parser.lex ├── hmc_config_parser.yy.c ├── hmc_init.c ├── hmc_io.c ├── hmc_jtag.c ├── hmc_links.c ├── hmc_mem.c ├── hmc_power.c ├── hmc_process_packet.c ├── hmc_recv.c ├── hmc_reset.c ├── hmc_response.c ├── hmc_rqst.c ├── hmc_send.c ├── hmc_simple.c ├── hmc_stat.c ├── hmc_tecplot.c ├── hmc_trace.c └── hmc_util.c ├── test ├── 1dfft │ ├── Makefile │ ├── README │ └── src │ │ └── 1dfft.c ├── 2dfft │ ├── Makefile │ ├── README │ └── src │ │ └── 2dfft.c ├── Makefile ├── Makefile.inc ├── decode_physrand │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_2GB_bcopy.sh │ │ ├── 4link_4GB.sh │ │ ├── 4link_4GB_bcopy.sh │ │ ├── 8link_4GB_bcopy.sh │ │ ├── 8link_8GB_bcopy.sh │ │ └── smalltest.sh │ └── src │ │ ├── execute_test.c │ │ ├── genrand.c │ │ ├── physrand_main.c │ │ └── shiftamt.c ├── dyn_cmc │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── runall.sh │ │ ├── smalltest_4GB.sh │ │ └── smalltest_8GB.sh │ └── src │ │ ├── .execute_test.c.swp │ │ ├── dyn_cmc.c │ │ ├── execute_test.c │ │ └── shiftamt.c ├── fe_linear │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_4GB.sh │ │ ├── 8link_8GB.sh │ │ ├── runall.sh │ │ └── smalltest.sh │ └── src │ │ ├── execute_test.c │ │ ├── fe_linear.c │ │ └── shiftamt.c ├── fe_tree │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_4GB.sh │ │ ├── 8link_8GB.sh │ │ ├── runall.sh │ │ └── smalltest.sh │ └── src │ │ ├── execute_test.c │ │ ├── fe_tree.c │ │ └── shiftamt.c ├── gups │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_2GB_64TH.sh │ │ ├── 4link_4GB_64TH.sh │ │ ├── 4link_small.sh │ │ ├── 8link_4GB_64TH.sh │ │ ├── 8link_8GB_64TH.sh │ │ └── 8link_small.sh │ └── src │ │ ├── execute_test.c │ │ ├── gups.c │ │ └── shiftamt.c ├── hmc_physrand │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_2GB_bcopy.sh │ │ ├── 4link_4GB.sh │ │ ├── 4link_4GB_bcopy.sh │ │ ├── 8link_4GB_bcopy.sh │ │ ├── 8link_8GB_bcopy.sh │ │ └── smalltest.sh │ └── src │ │ ├── execute_test.c │ │ ├── genrand.c │ │ ├── physrand_main.c │ │ └── shiftamt.c ├── load_fe │ ├── Makefile │ ├── README │ └── src │ │ └── load_fe.c ├── mutex │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_4GB.sh │ │ ├── 4link_4GB_128TH.sh │ │ ├── 4link_4GB_16TH.sh │ │ ├── 4link_4GB_256TH.sh │ │ ├── 4link_4GB_2TH.sh │ │ ├── 4link_4GB_32TH.sh │ │ ├── 4link_4GB_4TH.sh │ │ ├── 4link_4GB_512TH.sh │ │ ├── 4link_4GB_64TH.sh │ │ ├── 4link_4GB_8TH.sh │ │ ├── 8link_8GB.sh │ │ ├── 8link_8GB_64TH.sh │ │ ├── runall.sh │ │ └── smalltest.sh │ └── src │ │ ├── execute_test.c │ │ ├── mutex.c │ │ └── shiftamt.c ├── mutex_linear │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_4GB.sh │ │ ├── 8link_8GB.sh │ │ ├── runall.sh │ │ └── smalltest.sh │ └── src │ │ ├── execute_test.c │ │ ├── mutex_linear.c │ │ └── shiftamt.c ├── simple │ ├── Makefile │ ├── README │ └── src │ │ └── simple.c ├── simple_api │ ├── Makefile │ ├── Makefile.inc │ ├── README │ ├── simple4GB │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple4GB.cpp │ ├── simple4GBamo │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple4GB.cpp │ ├── simple4GBcmc │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple4GB.cpp │ ├── simple4GBio │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple4GB.cpp │ ├── simple4GBstall │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple4GB.cpp │ ├── simple8GB │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple8GB.cpp │ ├── simple8GBamo │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple8GB.cpp │ ├── simple8GBcmc │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple8GB.cpp │ ├── simple8GBio │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple8GB.cpp │ ├── simple8GBstall │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple8GB.cpp │ ├── simpleconfig4GB │ │ ├── Makefile │ │ ├── README │ │ ├── config.sample.4 │ │ └── src │ │ │ └── simple4GB.cpp │ ├── simpleconfig8GB │ │ ├── Makefile │ │ ├── README │ │ ├── config.sample.8 │ │ └── src │ │ │ └── simple8GB.cpp │ ├── simpletecplot4GB │ │ ├── Makefile │ │ ├── README │ │ ├── config.sample.4 │ │ └── src │ │ │ └── simple4GB.cpp │ ├── simpletecplot8GB │ │ ├── Makefile │ │ ├── README │ │ ├── config.sample.8 │ │ └── src │ │ │ └── simple8GB.cpp │ ├── simpletrace4GB │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ │ └── simple4GB.cpp │ └── simpletrace8GB │ │ ├── Makefile │ │ ├── README │ │ └── src │ │ └── simple8GB.cpp ├── simple_cmc │ ├── Makefile │ ├── README │ └── src │ │ └── simple.c ├── spmv │ ├── Makefile │ ├── README │ └── src │ │ ├── execute_test.c │ │ ├── readmat.c │ │ ├── shiftamt.c │ │ ├── spmv.c │ │ └── spmv.h ├── sst │ ├── 6.0.0 │ │ ├── goblinHMC1.py │ │ ├── goblinHMC2.py │ │ ├── goblinHMC3.py │ │ ├── goblin_singlestream1-trace.py │ │ ├── goblin_singlestream1.py │ │ ├── goblin_singlestream2-trace.py │ │ ├── goblin_singlestream2.py │ │ ├── goblin_singlestream3-trace.py │ │ └── goblin_singlestream3.py │ ├── 6.1.0 │ │ ├── goblinHMC1.py │ │ ├── goblinHMC2.py │ │ ├── goblinHMC3.py │ │ ├── goblin_singlestream1-trace.py │ │ ├── goblin_singlestream1.py │ │ ├── goblin_singlestream2-trace.py │ │ ├── goblin_singlestream2.py │ │ ├── goblin_singlestream3-trace.py │ │ ├── goblin_singlestream3.py │ │ ├── goblin_singlestream4-trace.py │ │ ├── goblin_singlestream5-trace.py │ │ └── goblin_singlestream6-trace.py │ ├── 7.0.0 │ │ ├── goblinHMC1.py │ │ ├── goblinHMC2.py │ │ ├── goblinHMC3.py │ │ ├── goblin_singlestream1-trace.py │ │ ├── goblin_singlestream1.py │ │ ├── goblin_singlestream2-trace.py │ │ ├── goblin_singlestream2.py │ │ ├── goblin_singlestream3-trace.py │ │ ├── goblin_singlestream3.py │ │ ├── goblin_singlestream4-trace.py │ │ ├── goblin_singlestream5-trace.py │ │ └── goblin_singlestream6-trace.py │ ├── 7.1.0 │ │ ├── goblinHMC1.py │ │ ├── goblinHMC2.py │ │ ├── goblinHMC3.py │ │ ├── goblin_singlestream1-trace.py │ │ ├── goblin_singlestream1.py │ │ ├── goblin_singlestream2-trace.py │ │ ├── goblin_singlestream2.py │ │ ├── goblin_singlestream3-trace.py │ │ ├── goblin_singlestream3.py │ │ ├── goblin_singlestream4-trace.py │ │ ├── goblin_singlestream5-trace.py │ │ └── goblin_singlestream6-trace.py │ ├── 7.2.0 │ │ ├── goblinHMC1.py │ │ ├── goblinHMC2.py │ │ ├── goblinHMC3.py │ │ ├── goblin_singlestream1-trace-map.py │ │ ├── goblin_singlestream1-trace.py │ │ ├── goblin_singlestream1.py │ │ ├── goblin_singlestream2-trace.py │ │ ├── goblin_singlestream2.py │ │ ├── goblin_singlestream3-trace.py │ │ ├── goblin_singlestream3.py │ │ ├── goblin_singlestream4-trace.py │ │ ├── goblin_singlestream5-trace.py │ │ └── goblin_singlestream6-trace.py │ ├── LICENSE │ ├── README │ └── TOT │ │ ├── goblinHMC1.py │ │ ├── goblinHMC2.py │ │ ├── goblinHMC3.py │ │ ├── goblin_singlestream1-trace-map.py │ │ ├── goblin_singlestream1-trace.py │ │ ├── goblin_singlestream1.py │ │ ├── goblin_singlestream2-trace.py │ │ ├── goblin_singlestream2.py │ │ ├── goblin_singlestream3-trace.py │ │ ├── goblin_singlestream3.py │ │ ├── goblin_singlestream4-trace.py │ │ ├── goblin_singlestream5-trace.py │ │ └── goblin_singlestream6-trace.py ├── sst_init │ ├── Makefile │ ├── README │ └── src │ │ └── sst_init.c ├── stream │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_2GB_stream.sh │ │ ├── 4link_3GB_stream.sh │ │ ├── 4link_4GB_stream.sh │ │ ├── 8link_4GB_stream.sh │ │ └── 8link_8GB_stream.sh │ └── src │ │ ├── execute_test.c │ │ ├── shiftamt.c │ │ └── stream.c ├── stream_power │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_4GB_stream.sh │ │ ├── 8link_8GB_stream.sh │ │ └── simple.sh │ └── src │ │ ├── execute_test.c │ │ ├── shiftamt.c │ │ └── stream.c ├── stream_power_config │ ├── Makefile │ ├── README │ ├── scripts │ │ ├── 4link_4GB_stream.sh │ │ ├── 8link_8GB_stream.sh │ │ ├── config.sample │ │ ├── config.sample.4 │ │ ├── config.sample.8 │ │ ├── runsimple.sh │ │ ├── simple.sh │ │ ├── simple4.sh │ │ └── simple8.sh │ └── src │ │ ├── execute_test.c │ │ ├── shiftamt.c │ │ └── stream.c └── stream_power_tecplot │ ├── Makefile │ ├── README │ ├── scripts │ ├── 4link_4GB_stream.sh │ ├── 8link_8GB_stream.sh │ ├── config.sample │ ├── config.sample.4 │ ├── config.sample.8 │ ├── runsimple.sh │ ├── simple.sh │ ├── simple4.sh │ └── simple8.sh │ └── src │ ├── execute_test.c │ ├── shiftamt.c │ └── stream.c ├── tools ├── Makefile ├── Makefile.inc └── src │ └── hmctognuplot.c └── viz └── README /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation and/or 12 | other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17 | IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 18 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 19 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 21 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 22 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 23 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /Makefile.inc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/volatile/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | HMC-SIM 2 | ----------------------------------------------------------- 3 | 4 | Hybrid Memory Cube Functional Simulation Environment 5 | 6 | 7 | Developer: 8 | 9 | - John Leidel, Tactical Computing Laboratories (jleidel@tactcomplabs.com) 10 | 11 | License: 12 | - BSD 13 | 14 | More Info: 15 | - http://gc64.org 16 | 17 | ----------------------------------------------------------- 18 | EOF 19 | -------------------------------------------------------------------------------- /README.BUILD: -------------------------------------------------------------------------------- 1 | README.BUILD 2 | ------------------------------------------------- 3 | Contents: 4 | 5 | I. Overview 6 | II. Build Requirements 7 | III. Tested Platforms 8 | IV. Build Time Options 9 | 10 | ------------------------------------------------- 11 | 12 | I. Overview 13 | ------------------------------------------------- 14 | 15 | The HMC-Sim build environment is designed to 16 | build a simple (static) library for 17 | executing HMC device simulations for 18 | one or more homogeneous devices. 19 | 20 | 21 | II. Build Requirements 22 | ------------------------------------------------- 23 | 24 | - GNU Make 25 | - C Compiler (GCC is default) 26 | 27 | 28 | III. Tested Platforms 29 | ------------------------------------------------- 30 | 31 | - Mac OSX/Darwin 10.9.5 + gcc 4.2.1 32 | - Mac OSX/Darwin 10.9.5 + clang 2.9 (OSX) 33 | - Ubuntu 14.04LTS + gcc 4.8.4 34 | - Ubuntu 14.04LTS + clang 3.3 35 | 36 | 37 | IV. Build Time Options 38 | ------------------------------------------------- 39 | 40 | Building HMC-Sim can be completed by simply 41 | typing "make". If additional modifications 42 | to the build environment need to be made, 43 | modify the Makfile.inc script. 44 | 45 | For additional Makefile.inc variants, see 46 | the 'configs' directory. 47 | 48 | ------------------------------------------------- 49 | EOF 50 | -------------------------------------------------------------------------------- /VALID_CONFIGS: -------------------------------------------------------------------------------- 1 | VALID GEN2 HMC CONFIGURATIONS 2 | ------------------------------------------------------- 3 | 4 | CAPACITY DRAM_STACKS LINKS 5 | -------- ----------- ----- 6 | 4GB 4 4 7 | 4GB 4 2 8 | 8GB 8 4 9 | 8GB 8 2 10 | 11 | ------------------------------------------------------- 12 | EOF 13 | -------------------------------------------------------------------------------- /cmc/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM CMC MAKEFILE 4 | # 5 | # Drives building all the cmc libraries 6 | 7 | 8 | SUBDIRS := $(shell find ./ -maxdepth 1 -mindepth 1 -type d) 9 | 10 | CLEANDIRS := $(addsuffix .clean, $(SUBDIRS)) 11 | 12 | INSTALLDIRS := $(addsuffix .install, $(SUBDIRS)) 13 | 14 | all:$(SUBDIRS) 15 | $(SUBDIRS): 16 | @echo " Building CMC Library in $(@)"; $(MAKE) -C $@ 17 | .PHONY: all $(SUBDIRS) 18 | 19 | clean: $(CLEANDIRS) 20 | $(CLEANDIRS): 21 | @echo " Cleaning CMC Library in $(@)"; $(MAKE) -C $(basename $@) clean 22 | .PHONY: clean $(CLEANDIRS) 23 | 24 | install: $(INSTALLDIRS) 25 | $(INSTALLDIRS): 26 | @echo " Installing CMC Library in $(@)"; $(MAKE) -C $(basename $@) install 27 | .PHONY: install $(INSTALLDIRS) 28 | 29 | -------------------------------------------------------------------------------- /cmc/Makefile.inc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #-- CC 4 | #-- C COMPILER 5 | CC=gcc 6 | 7 | #-- CXX 8 | #-- C++ COMPILER 9 | CXX=g++ 10 | 11 | #-- INC 12 | #-- INCLUDE DIRECTORIES 13 | INC=-I../../include/ 14 | 15 | #-- CFLAGS 16 | #-- C COMPILER FLAGS 17 | CFLAGS=-O2 -Wall -g $(INC) 18 | 19 | #-- CXXFLAGS 20 | #-- C++ COMPILER FLAGS 21 | CXXFLAGS=-O2 -Wall -g $(INC) 22 | 23 | #-- LDFLAGS 24 | #-- LINKER OPTIONS 25 | LDFLAGS=-L../../ 26 | 27 | #-- LDLIBS 28 | #-- LIBRARIES FOR LINKING 29 | LDLIBS= 30 | 31 | #-- DOXYGEN 32 | #-- DOXYGEN BINARY 33 | DOXYGEN=`which doxygen` 34 | 35 | #-- EOF 36 | -------------------------------------------------------------------------------- /cmc/README: -------------------------------------------------------------------------------- 1 | HMC-Sim 2.0 Custom Memory Cube (CMC) Libraries 2 | ------------------------------------------------------- 3 | This directory contains individual impementations 4 | of CMC extensions to the base HMC 2.0 specification. Each 5 | directory contains a single CMC library. Each library 6 | implements a single CMC operation. The user may 7 | load any number of CMC libraries into a given simulation 8 | providing that their command codes do not conflict. 9 | For examples on how to create new CMC libraries and/or 10 | integrate CMC operations into a simulation, see the 11 | test directory in ../test and/or read the HMC-Sim 12 | 2.0 documentation at www.gc64.org. 13 | ------------------------------------------------------- 14 | Note on licenses. All the CMC source code in the 15 | core HMC-Sim 2.0 source tree are subject to the 16 | BSD-style license found at ../LICENSE. Users of 17 | HMC-Sim may develop, package and release their 18 | own libraries using the CMC interfaces under their 19 | own license restrictions. 20 | ------------------------------------------------------- 21 | EOF 22 | -------------------------------------------------------------------------------- /cmc/amo_popcount/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/amo_popcount/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := amopopcount 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/amo_popcount/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | HMC-Sim 2.0 CMC Sample AMO PopCount 3 | 4 | Adds an atomic popcount operation to the HMC 5 | as command code CMC05 6 | ------------------------------------------------- 7 | EOF 8 | -------------------------------------------------------------------------------- /cmc/dynamic_template/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/dynamic_template/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 DYNAMIC CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := dynamic_cmctemplate 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/dynamic_template/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | HMC-Sim 2.0 DYNAMIC CMC Template 3 | 4 | Use this sample CMC template to implement 5 | your own CMC operations. Be sure to 6 | read the documentation found at www.gc64.org 7 | ------------------------------------------------- 8 | EOF 9 | -------------------------------------------------------------------------------- /cmc/fullempty/COMMANDS.README: -------------------------------------------------------------------------------- 1 | FullEmpty Command Registration 2 | -------------------------------------------------------------------- 3 | COMMAND ENUM RQST_LEN RSP_LEN RSP_CMD 4 | -------------------------------------------------------------------- 5 | IncFF CMC70 2 2 WR_RS 6 | ReadEF CMC71 1 2 RD_RS 7 | ReadFE CMC72 1 2 RD_RS 8 | ReadFF CMC73 1 2 RD_RS 9 | ReadXX CMC74 1 2 RD_RS 10 | WriteEF CMC75 2 2 WR_RS 11 | WriteFF CMC76 2 2 WR_RS 12 | WriteXE CMC77 2 2 WR_RS 13 | WriteXF CMC78 2 2 WR_RS 14 | ClrXX CMC85 1 0 NONE 15 | -------------------------------------------------------------------- 16 | EOF 17 | -------------------------------------------------------------------------------- /cmc/fullempty/ClrXX/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/ClrXX/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := clrxx 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/ClrXX/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | ClrXX 3 | - set mem=0 && full=0 4 | ------------------------------------------------- 5 | 6 | mem=0 7 | full=0 8 | 9 | ------------------------------------------------- 10 | EOF 11 | -------------------------------------------------------------------------------- /cmc/fullempty/IncFF/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/IncFF/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := incff 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/IncFF/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | IncFF 3 | - If full, increment += data, set full 4 | ------------------------------------------------- 5 | 6 | if( full ){ 7 | mem=old+data 8 | full=1 9 | ret(1,old) 10 | }else{ 11 | ret(0,0x00ll) 12 | } 13 | 14 | ------------------------------------------------- 15 | EOF 16 | -------------------------------------------------------------------------------- /cmc/fullempty/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM CMC MAKEFILE 4 | # 5 | # Drives building all the cmc libraries 6 | 7 | 8 | SUBDIRS := $(shell find ./ -maxdepth 1 -mindepth 1 -type d) 9 | 10 | CLEANDIRS := $(addsuffix .clean, $(SUBDIRS)) 11 | 12 | INSTALLDIRS := $(addsuffix .install, $(SUBDIRS)) 13 | 14 | all:$(SUBDIRS) 15 | $(SUBDIRS): 16 | @echo " Building CMC Library in $(@)"; $(MAKE) -C $@ 17 | .PHONY: all $(SUBDIRS) 18 | 19 | clean: $(CLEANDIRS) 20 | $(CLEANDIRS): 21 | @echo " Cleaning CMC Library in $(@)"; $(MAKE) -C $(basename $@) clean 22 | .PHONY: clean $(CLEANDIRS) 23 | 24 | install: $(INSTALLDIRS) 25 | @echo " Installing CMC Library in $(@)"; $(MAKE) -C $(basename $@) install 26 | .PHONY: install $(INSTALLDIRS) 27 | 28 | -------------------------------------------------------------------------------- /cmc/fullempty/Makefile.inc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #-- CC 4 | #-- C COMPILER 5 | CC=gcc 6 | 7 | #-- CXX 8 | #-- C++ COMPILER 9 | CXX=g++ 10 | 11 | #-- INC 12 | #-- INCLUDE DIRECTORIES 13 | INC=-I../../../include/ 14 | 15 | #-- CFLAGS 16 | #-- C COMPILER FLAGS 17 | CFLAGS=-O2 -Wall -g $(INC) -D_8GB_ 18 | 19 | #-- CXXFLAGS 20 | #-- C++ COMPILER FLAGS 21 | CXXFLAGS=-O2 -Wall -g $(INC) 22 | 23 | #-- LDFLAGS 24 | #-- LINKER OPTIONS 25 | LDFLAGS=-L../../../ 26 | 27 | #-- LDLIBS 28 | #-- LIBRARIES FOR LINKING 29 | LDLIBS= 30 | 31 | #-- DOXYGEN 32 | #-- DOXYGEN BINARY 33 | DOXYGEN=`which doxygen` 34 | 35 | #-- EOF 36 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadEF/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadEF/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := readef 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadEF/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | ReadEF 3 | - Read if empty and set to full 4 | ------------------------------------------------- 5 | 6 | if( !full ){ 7 | full=1 8 | ret(1,mem) 9 | }else{ 10 | ret(0,0x00ll) 11 | } 12 | 13 | ------------------------------------------------- 14 | EOF 15 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadFE/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadFE/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := readfe 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadFE/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | ReadFE 3 | - Read if full and set to empty 4 | ------------------------------------------------- 5 | 6 | if( full ){ 7 | full=0 8 | ret(1,mem) 9 | }else{ 10 | ret(0,0x00ll) 11 | } 12 | 13 | ------------------------------------------------- 14 | EOF 15 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadFF/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadFF/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := readff 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadFF/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | ReadFF 3 | - Read if full and set to full 4 | ------------------------------------------------- 5 | 6 | if( full ){ 7 | full=1 8 | ret(1,mem) 9 | }else{ 10 | ret(0,0x00ll) 11 | } 12 | 13 | ------------------------------------------------- 14 | EOF 15 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadXX/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadXX/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := readxx 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/ReadXX/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | ReadXX 3 | - Read memory 4 | ------------------------------------------------- 5 | 6 | ret(1,mem) 7 | 8 | ------------------------------------------------- 9 | EOF 10 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteEF/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteEF/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := writeef 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteEF/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | WriteEF 3 | - write if empty and set to full 4 | ------------------------------------------------- 5 | 6 | if( !full ){ 7 | mem=data 8 | full=1 9 | ret(1,0x00ll) 10 | }else{ 11 | ret(0,0x00ll) 12 | } 13 | 14 | ------------------------------------------------- 15 | EOF 16 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteFF/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteFF/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := writeff 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteFF/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | WriteFF 3 | - write if full and set to full 4 | ------------------------------------------------- 5 | 6 | if( full ){ 7 | mem=data 8 | full=1 9 | ret(1,0x00ll) 10 | }else{ 11 | ret(0,0x00ll) 12 | } 13 | 14 | ------------------------------------------------- 15 | EOF 16 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteXE/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteXE/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := writexe 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteXE/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | WriteXE 3 | - write and set to empty 4 | ------------------------------------------------- 5 | 6 | mem=data 7 | full=0 8 | 9 | ------------------------------------------------- 10 | EOF 11 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteXF/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteXF/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := writexf 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/fullempty/WriteXF/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | WriteXF 3 | - write data and set to full 4 | ------------------------------------------------- 5 | 6 | mem=data 7 | full=1 8 | 9 | ------------------------------------------------- 10 | EOF 11 | -------------------------------------------------------------------------------- /cmc/mutex/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM CMC MAKEFILE 4 | # 5 | # Drives building all the cmc libraries 6 | 7 | 8 | SUBDIRS := $(shell find ./ -maxdepth 1 -mindepth 1 -type d) 9 | 10 | CLEANDIRS := $(addsuffix .clean, $(SUBDIRS)) 11 | 12 | INSTALLDIRS := $(addsuffix .install, $(SUBDIRS)) 13 | 14 | all:$(SUBDIRS) 15 | $(SUBDIRS): 16 | @echo " Building CMC Library in $(@)"; $(MAKE) -C $@ 17 | .PHONY: all $(SUBDIRS) 18 | 19 | clean: $(CLEANDIRS) 20 | $(CLEANDIRS): 21 | @echo " Cleaning CMC Library in $(@)"; $(MAKE) -C $(basename $@) clean 22 | .PHONY: clean $(CLEANDIRS) 23 | 24 | install: $(INSTALLDIRS) 25 | $(INSTALLDIRS): 26 | @echo " Installing CMC Library in $(@)"; $(MAKE) -C $(basename $@) clean 27 | .PHONY: install $(INSTALLDIRS) 28 | 29 | 30 | -------------------------------------------------------------------------------- /cmc/mutex/Makefile.inc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #-- CC 4 | #-- C COMPILER 5 | CC=gcc 6 | 7 | #-- CXX 8 | #-- C++ COMPILER 9 | CXX=g++ 10 | 11 | #-- INC 12 | #-- INCLUDE DIRECTORIES 13 | INC=-I../../../include/ 14 | 15 | #-- CFLAGS 16 | #-- C COMPILER FLAGS 17 | CFLAGS=-O2 -Wall -g $(INC) 18 | 19 | #-- CXXFLAGS 20 | #-- C++ COMPILER FLAGS 21 | CXXFLAGS=-O2 -Wall -g $(INC) 22 | 23 | #-- LDFLAGS 24 | #-- LINKER OPTIONS 25 | LDFLAGS=-L../../../ 26 | 27 | #-- LDLIBS 28 | #-- LIBRARIES FOR LINKING 29 | LDLIBS= 30 | 31 | #-- DOXYGEN 32 | #-- DOXYGEN BINARY 33 | DOXYGEN=`which doxygen` 34 | 35 | #-- EOF 36 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_lock/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_lock/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := hmc_lock 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGETS) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_lock/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | HMC-Sim 2.0 CMC Template 3 | 4 | Use this sample CMC template to implement 5 | your own CMC operations. Be sure to 6 | read the documentation found at www.gc64.org 7 | ------------------------------------------------- 8 | EOF 9 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_trylock/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_trylock/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := hmc_trylock 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_trylock/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | HMC-Sim 2.0 CMC Template 3 | 4 | Use this sample CMC template to implement 5 | your own CMC operations. Be sure to 6 | read the documentation found at www.gc64.org 7 | ------------------------------------------------- 8 | EOF 9 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_unlock/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_unlock/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := hmc_unlock 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/mutex/hmc_unlock/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | HMC-Sim 2.0 CMC Template 3 | 4 | Use this sample CMC template to implement 5 | your own CMC operations. Be sure to 6 | read the documentation found at www.gc64.org 7 | ------------------------------------------------- 8 | EOF 9 | -------------------------------------------------------------------------------- /cmc/template/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Texas Tech University 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /cmc/template/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMC-SIM 2.0 CMC TEMPLATE MAKEFILE 4 | # 5 | #------------------------------------ 6 | 7 | include ../Makefile.inc 8 | 9 | #-- CHANGE THE NAME OF YOUR LIBRARY HERE 10 | LIBNAME := cmctemplate 11 | #--------------------------------------- 12 | 13 | SRCDIR := . 14 | BUILDDIR := build 15 | TARGET := lib$(LIBNAME).so 16 | 17 | CFLAGS := $(CFLAGS) -fPIC 18 | 19 | SRCEXT = c 20 | SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) 21 | OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) 22 | DEPS := $(OBJECTS:.o=.deps) 23 | 24 | $(TARGET): $(OBJECTS) 25 | @echo " Linking... $(TARGET)"; $(CC) -shared -o $(TARGET) $(OBJECTS) 26 | $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) 27 | @mkdir -p $(BUILDDIR) 28 | @echo " CC $<"; $(CC) $(CFLAGS) -MD -MF $(@:.o=.deps) -c -o $@ $< 29 | clean: 30 | @echo " Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGET) 31 | install: $(TARGET) 32 | @echo " Installing $(TARGET)"; install $(TARGET) $(PREFIX)/cmc/ 33 | -include $(DEPS) 34 | 35 | .PHONY: clean install 36 | 37 | #--EOF 38 | -------------------------------------------------------------------------------- /cmc/template/README: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | HMC-Sim 2.0 CMC Template 3 | 4 | Use this sample CMC template to implement 5 | your own CMC operations. Be sure to 6 | read the documentation found at www.gc64.org 7 | ------------------------------------------------- 8 | EOF 9 | -------------------------------------------------------------------------------- /configs/Makefile.inc.linux_jenkins: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/sst/install/volatile/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /configs/Makefile.inc.linux_jenkins_6.0.0: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/sst/install/volatile/6.0.0/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /configs/Makefile.inc.linux_jenkins_6.1.0: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/sst/install/volatile/6.1.0/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /configs/Makefile.inc.linux_jenkins_7.0.0: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/sst/install/volatile/7.0.0/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /configs/Makefile.inc.linux_jenkins_7.1.0: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/sst/install/volatile/7.1.0/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /configs/Makefile.inc.linux_jenkins_7.2.0: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/sst/install/volatile/7.2.0/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /configs/Makefile.inc.linux_jenkins_TOT: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/sst/install/volatile/TOT/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /configs/Makefile.inc.osx_jenkins: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=/usr/local/bin/doxygen 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/jenkins/sst/install/volatile/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /configs/Makefile.inc.template: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | # Each of the following can be added to the HMCSIM_MACROS 8 | # option below in order to enable/disable certain 9 | # options. 10 | # 11 | # HMCSIM LIBRARY MAJOR VERSION NUMBER 12 | # -DHMC_MAJOR_VERSION=n 13 | # 14 | # HMCSIM LIBRARY MINOR VERSION NUMBER 15 | # -DHMC_MINOR_VERSION=n 16 | # 17 | # HMCSIM LIBRARY VENDOR ID 18 | # -DHMC_VENDOR_ID=n 19 | # 20 | # HMCSIM PRODUCT REVISION [8-bit unsigned int] 21 | # -DHMC_PRODUCT_REVISION=n 22 | # 23 | # HMCSIM PROTOCOL REVISION [8-bit unsigned int] 24 | # -DHMC_PROTOCOL_REVISION=n 25 | # 26 | # HMCSIM PHY REVISION [8-bit unsigned int] 27 | # -DHMC_PHY_REVISION=n 28 | # 29 | # HMCSIM PHYSICAL LINK SPEED 30 | # 0 = 30Gbps 31 | # 1 = 28Gbps 32 | # 2 = 25Gbps 33 | # 3 = 15Gbps 34 | # 4 = 12.5Gbps 35 | # -DHMC_PHY_SPEED={0,1,2,3,4} 36 | # 37 | # HMCSIM MEMORY ALLOCATION 38 | # !WARNING! WILL REQUIRE LARGE PHYSICAL MEMORY FOOTPRINT 39 | # -DHMC_ALLOC_MEM 40 | # 41 | #--------------------------------------------------------- 42 | 43 | #-- HMCSIM_MACROS 44 | #-- HMCSIM BUILD MACROS 45 | HMCSIM_MACROS+=-DHMC_PHY_REVISION=2 46 | HMCSIM_MACROS+=-DHMC_PRODUCT_REVISION=2 47 | HMCSIM_MACROS+=-DHMC_MAJOR_VERSION=3 48 | HMCSIM_MACROS+=-DHMC_MINOR_VERSION=0 49 | HMCSIM_MACROS+=-DHMC_PROTOCOL_REVISION=2 50 | #HMCSIM_MACROS:=-DHMC_ALLOC_MEM 51 | #HMCSIM_MACROS:=-DHMC_DEBUG 52 | 53 | 54 | #-- CC 55 | #-- C COMPILER 56 | CC=gcc 57 | 58 | #-- CXX 59 | #-- C++ COMPILER 60 | CXX=g++ 61 | 62 | #-- INC 63 | #-- INCLUDE DIRECTORIES 64 | INC=-I./include/ 65 | 66 | #-- CFLAGS 67 | #-- C COMPILER FLAGS 68 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 69 | 70 | #-- CXXFLAGS 71 | #-- C++ COMPILER FLAGS 72 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_MACROS) 73 | 74 | #-- AR 75 | #-- ARCHIVE BINARY 76 | AR=ar 77 | 78 | #-- AR_OPTS 79 | #-- ARCHIVE OPTIONS 80 | AR_OPTS=rcs 81 | 82 | #-- DOXYGEN 83 | #-- DOXYGEN BINARY 84 | DOXYGEN=`which doxygen` 85 | 86 | #-- PREFIX 87 | #-- INSTALLATION PREFIX 88 | PREFIX=/opt/hmcsim 89 | 90 | #-- EOF 91 | -------------------------------------------------------------------------------- /gnuplot/alltrace.gnuplot: -------------------------------------------------------------------------------- 1 | #-- alltrace.gnuplot 2 | 3 | set title "HMC-SIM" 4 | set xlabel "Clock Tick" 5 | set ylabel "Count" 6 | #set ytics "10" 7 | set term png 8 | set output "1024.png" 9 | 10 | plot "bank_conflict.out" title "Bank Conflicts" with linespoints,\ 11 | "xbar_latency.out" title "XBAR Latency" with linespoints,\ 12 | "xbar_rqst_stall.out" title "XBAR Request Stall" with linespoints,\ 13 | "rd64.out" title "RD64 CMD" with linespoints,\ 14 | "wr64.out" title "WR64 CMD" with linespoints 15 | -------------------------------------------------------------------------------- /gnuplot/alltrace.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #-- pulls all the trace values from an hmcsim trace output file 3 | #-- exports to individual files for importing into gnuplot 4 | #-- 5 | 6 | FILE=$1 7 | 8 | if [ -z $FILE ]; then 9 | echo "error : usage : $0 /path/to/trace.out" 10 | exit -1 11 | fi 12 | 13 | #-- get the clock values 14 | CLOCKS=`cat $FILE | awk '{print $3}' | uniq` 15 | 16 | 17 | #-- touch all the output files 18 | touch xbar_latency.out 19 | touch xbar_rqst_stall.out 20 | touch bank_conflict.out 21 | touch wr64.out 22 | touch rd64.out 23 | 24 | #-- for each clock value, get the outputs 25 | for a in $CLOCKS; do 26 | 27 | #-- XBAR_LATENCY 28 | XBAR_LATENCY=`cat $FILE | grep "HMCSIM_TRACE : $a : XBAR_LATENCY" | wc -l` 29 | 30 | #-- XBAR_RQST_STALL 31 | XBAR_RQST_STALL=`cat $FILE | grep "HMCSIM_TRACE : $a : XBAR_RQST_STALL" | wc -l` 32 | 33 | #-- BANK_CONFLICT 34 | BANK_CONFLICT=`cat $FILE | grep "HMCSIM_TRACE : $a : BANK_CONFLICT" | wc -l` 35 | 36 | #-- WR64 37 | WR64=`cat $FILE | grep "HMCSIM_TRACE : $a : WR64" | wc -l` 38 | 39 | #-- RD64 40 | RD64=`cat $FILE | grep "HMCSIM_TRACE : $a : RD64" | wc -l` 41 | 42 | #-- write out the values 43 | echo "$a $XBAR_LATENCY" >> xbar_latency.out 2>&1 44 | echo "$a $XBAR_RQST_STALL" >> xbar_rqst_stall.out 2>&1 45 | echo "$a $BANK_CONFLICT" >> bank_conflict.out 2>&1 46 | echo "$a $WR64" >> wr64.out 2>&1 47 | echo "$a $RD64" >> rd64.out 2>&1 48 | done; 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /include/hmc_sim_tecplot.h: -------------------------------------------------------------------------------- 1 | /* 2 | * _HMC_SIM_TECPLOT_H_ 3 | * 4 | * HMC-Sim Tecplot Data Formats 5 | * 6 | * COPYRIGHT (c) 2018 TEXAS TECH UNIVERSITY 7 | * SEE LICENSE FOR DETAILS 8 | * 9 | */ 10 | 11 | #ifndef _HMC_SIM_TECPLOT_H_ 12 | #define _HMC_SIM_TECPLOT_H_ 13 | 14 | #include 15 | 16 | struct HMC4LinkTec{ 17 | // power 18 | float vault_rsp_power[32]; 19 | float vault_rqst_power[32]; 20 | float vault_ctrl_power[32]; 21 | float xbar_rqst_power[4]; 22 | float xbar_rsp_power[4]; 23 | float xbar_route_extern_power[4]; 24 | float link_local_route_power[4]; 25 | float link_remote_route_power[4]; 26 | float link_phy_power[4]; 27 | float row_access_power; 28 | 29 | // thermal 30 | float vault_rsp_btu[32]; 31 | float vault_rqst_btu[32]; 32 | float vault_ctrl_btu[32]; 33 | float xbar_rqst_btu[4]; 34 | float xbar_rsp_btu[4]; 35 | float xbar_route_extern_btu[4]; 36 | float link_local_route_btu[4]; 37 | float link_remote_route_btu[4]; 38 | float link_phy_btu[4]; 39 | float row_access_btu; 40 | }; 41 | 42 | struct HMC8LinkTec{ 43 | float vault_rsp_power[32]; 44 | float vault_rqst_power[32]; 45 | float vault_ctrl_power[32]; 46 | float xbar_rqst_power[8]; 47 | float xbar_rsp_power[8]; 48 | float xbar_route_extern_power[8]; 49 | float link_local_route_power[8]; 50 | float link_remote_route_power[8]; 51 | float link_phy_power[8]; 52 | float row_access_power; 53 | 54 | // thermal 55 | float vault_rsp_btu[32]; 56 | float vault_rqst_btu[32]; 57 | float vault_ctrl_btu[32]; 58 | float xbar_rqst_btu[8]; 59 | float xbar_rsp_btu[8]; 60 | float xbar_route_extern_btu[8]; 61 | float link_local_route_btu[8]; 62 | float link_remote_route_btu[8]; 63 | float link_phy_btu[8]; 64 | float row_access_btu; 65 | }; 66 | 67 | #endif /* _HMC_SIM_TECPLOT_H_ */ 68 | /* EOF */ 69 | -------------------------------------------------------------------------------- /src/hmc_config.c: -------------------------------------------------------------------------------- 1 | /* 2 | * _HMC_CONFIG_C_ 3 | * 4 | * Reads the HMC configuration data from a file 5 | * 6 | * COPYRIGHT (c) 2018 TEXAS TECH UNIVERSITY 7 | * SEE LICENSE FOR DETAILS 8 | * 9 | */ 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include "hmc_sim.h" 16 | 17 | /* ----------------------------------------------------- FUNCTION_PROTOTYPES */ 18 | extern int hmcsim_lex_config( struct hmcsim_t *hmc, char *config ); 19 | 20 | /* ----------------------------------------------------- HMCSIM_READ_CONFIG */ 21 | extern int hmcsim_read_config( struct hmcsim_t *hmc, char *config ){ 22 | 23 | if( hmc == NULL ){ 24 | return -1; 25 | }else if( config == NULL ){ 26 | return -1; 27 | } 28 | 29 | return hmcsim_lex_config( hmc, config ); 30 | } 31 | 32 | /* EOF */ 33 | 34 | -------------------------------------------------------------------------------- /src/hmc_reset.c: -------------------------------------------------------------------------------- 1 | /* 2 | * _HMC_RESET_C_ 3 | * 4 | * HYBRID MEMORY CUBE SIMULATION LIBRARY 5 | * 6 | * HMC WARM RESET FUNCTION 7 | * 8 | * COPYRIGHT (c) 2018 TEXAS TECH UNIVERSITY 9 | * SEE LICENSE FOR DETAILS 10 | * 11 | */ 12 | 13 | 14 | #include 15 | #include 16 | #include 17 | #include "hmc_sim.h" 18 | 19 | /* ----------------------------------------------------- HMCSIM_RESET_DEVICE */ 20 | /* 21 | * HMCSIM_RESET_DEVICE 22 | * 23 | */ 24 | extern int hmcsim_reset_device( struct hmcsim_t *hmc, uint32_t dev ) 25 | { 26 | if( hmc == NULL ) { 27 | return -1; 28 | } 29 | 30 | return 0; 31 | } 32 | 33 | /* EOF */ 34 | -------------------------------------------------------------------------------- /test/1dfft/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: 1DFFT 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: 1dfft 13 | 1dfft: 14 | $(CC) $(CFLAGS) -o $@ $(SRC)/1dfft.c $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./1dfft ./src/*.o 17 | -------------------------------------------------------------------------------- /test/1dfft/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: 1DFFT 2 | ------------------------------------------- 3 | ------------------------------------------- 4 | EOF 5 | -------------------------------------------------------------------------------- /test/2dfft/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: 2DFFT 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: 2dfft 13 | 2dfft: 14 | $(CC) $(CFLAGS) -o $@ $(SRC)/2dfft.c $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./2dfft ./src/*.o 17 | -------------------------------------------------------------------------------- /test/2dfft/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: 2DFFT 2 | ------------------------------------------- 3 | ------------------------------------------- 4 | EOF 5 | -------------------------------------------------------------------------------- /test/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST MAKEFILE 4 | # 5 | # Drives building all the hmcsim tests 6 | 7 | 8 | SUBDIRS := simple simple_cmc hmc_physrand decode_physrand stream stream_power mutex mutex_linear sst_init fe_linear fe_tree load_fe gups stream_power_config stream_power_tecplot simple_api dyn_cmc 9 | 10 | CLEANDIRS := $(addsuffix .clean, $(SUBDIRS)) 11 | 12 | all:$(SUBDIRS) 13 | $(SUBDIRS): 14 | $(MAKE) -C $@ 15 | .PHONY: all $(SUBDIRS) 16 | 17 | clean: $(CLEANDIRS) 18 | $(CLEANDIRS): 19 | $(MAKE) -C $(basename $@) clean 20 | .PHONY: clean $(CLEANDIRS) 21 | 22 | -------------------------------------------------------------------------------- /test/Makefile.inc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | #--------------------------------------------------------- 8 | 9 | #-- HMCSIM_TEST_MACROS 10 | #-- HMCSIM TEST BUILD MACROS 11 | HMCSIM_TEST_MACROS= 12 | 13 | #-- CC 14 | #-- C COMPILER 15 | CC=gcc 16 | 17 | #-- CXX 18 | #-- C++ COMPILER 19 | CXX=g++ 20 | 21 | #-- INC 22 | #-- INCLUDE DIRECTORIES 23 | INC=-I../../include/ 24 | 25 | #-- CFLAGS 26 | #-- C COMPILER FLAGS 27 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_TEST_MACROS) 28 | 29 | #-- CXXFLAGS 30 | #-- C++ COMPILER FLAGS 31 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_TEST_MACROS) 32 | 33 | #-- LDFLAGS 34 | #-- LINKER OPTIONS 35 | LDFLAGS=-L../../ 36 | 37 | #-- LDLIBS 38 | #-- LIBRARIES FOR LINKING 39 | LDLIBS=-lhmcsim -ldl 40 | 41 | #-- AR 42 | #-- ARCHIVE BINARY 43 | AR=ar 44 | 45 | #-- AR_OPTS 46 | #-- ARCHIVE OPTIONS 47 | AR_OPTS=rcs 48 | 49 | #-- DOXYGEN 50 | #-- DOXYGEN BINARY 51 | DOXYGEN=`which doxygen` 52 | 53 | #-- EOF 54 | -------------------------------------------------------------------------------- /test/decode_physrand/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: PHYSRAND 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | OBJS=$(SRC)/genrand.o $(SRC)/execute_test.o $(SRC)/shiftamt.o 13 | 14 | all: physrand 15 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/genrand.o: $(SRC)/genrand.c 18 | $(CC) $(CFLAGS) -c -o $@ $< 19 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 20 | $(CC) $(CFLAGS) -c -o $@ $< 21 | physrand: $(SRC)/genrand.o $(SRC)/execute_test.o $(SRC)/shiftamt.o 22 | $(CC) $(CFLAGS) -c -o $(SRC)/physrand_main.o $(SRC)/physrand_main.c 23 | $(CC) $(CFLAGS) -o $@ $(SRC)/physrand_main.o $(OBJS) $(LDFLAGS) $(LDLIBS) 24 | clean: 25 | rm -Rf ./physrand ./src/*.o 26 | -------------------------------------------------------------------------------- /test/decode_physrand/README: -------------------------------------------------------------------------------- 1 | DECODE_PHYSRAND 2 | - describes the process by which to receive and decode a packet 3 | 4 | -------------------------------------------------------------------------------- /test/decode_physrand/scripts/4link_2GB_bcopy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=8 7 | CAPACITY=2 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=33554432 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/decode_physrand/scripts/4link_4GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PHYSRAND=../physrand 4 | 5 | BANKS=16 6 | CAPACITY=4 7 | LINKS=4 8 | BSIZE=64 9 | QDEPTH=64 10 | XDEPTH=128 11 | VAULTS=32 12 | NRQSTS=1024 13 | READ=50 14 | WRITE=50 15 | DRAMS=20 16 | 17 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 18 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 19 | 20 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 22 | -------------------------------------------------------------------------------- /test/decode_physrand/scripts/4link_4GB_bcopy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=33554432 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/decode_physrand/scripts/8link_4GB_bcopy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=8 7 | CAPACITY=4 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=33554432 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/decode_physrand/scripts/8link_8GB_bcopy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=16 7 | CAPACITY=8 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=33554432 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/decode_physrand/scripts/smalltest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #-- sample small test 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=8 7 | CAPACITY=2 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=10 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/dyn_cmc/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: DYN_CMC 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: dyn_cmc 13 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/dyn_cmc.o: $(SRC)/dyn_cmc.c 18 | $(CC) $(CFLAGS) -c -o $@ $< 19 | dyn_cmc: $(SRC)/dyn_cmc.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 20 | $(CC) $(CFLAGS) -o $@ $(SRC)/dyn_cmc.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 21 | clean: 22 | rm -Rf ./dyn_cmc ./src/*.o 23 | -------------------------------------------------------------------------------- /test/dyn_cmc/README: -------------------------------------------------------------------------------- 1 | DYN_CMC HMCSIM-2.0 EXAMPLE 2 | ----------------------------- 3 | tests the simple initialization 4 | and use of a dynamic cmc library 5 | -------------------------------------------------------------------------------- /test/dyn_cmc/scripts/runall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./smalltest_4GB.sh 4 | ./smalltest_8GB.sh 5 | -------------------------------------------------------------------------------- /test/dyn_cmc/scripts/smalltest_4GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../dyn_cmc 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | LIBSRC=../../../cmc/ 17 | 18 | 19 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH" 20 | 21 | 22 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH 23 | 24 | -------------------------------------------------------------------------------- /test/dyn_cmc/scripts/smalltest_8GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../dyn_cmc 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=8 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=64 15 | DRAMS=20 16 | LIBSRC=../../../cmc/ 17 | 18 | 19 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH" 20 | 21 | 22 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH 23 | -------------------------------------------------------------------------------- /test/dyn_cmc/src/.execute_test.c.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tactcomplabs/gc64-hmcsim/a6585fd160a72fa562121e6f466a7f6cc8c5b256/test/dyn_cmc/src/.execute_test.c.swp -------------------------------------------------------------------------------- /test/fe_linear/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: FE_LINEAR 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: fe_linear 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/fe_linear.o: $(SRC)/fe_linear.c 18 | fe_linear: $(SRC)/fe_linear.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 19 | $(CC) $(CFLAGS) -o $@ $(SRC)/fe_linear.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 20 | clean: 21 | rm -Rf ./fe_linear ./src/*.o 22 | -------------------------------------------------------------------------------- /test/fe_linear/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: FE_LINEAR 2 | ------------------------------------------- 3 | Executes a test of a parallel spin-wait 4 | lock algorithm. Requires the use 5 | of the following CMC libraries: 6 | - ReadEF 7 | - WriteXE 8 | 9 | These libraries can be found in the 10 | ~/cmc/fullempty/ directory. 11 | They are built by default with "make" 12 | 13 | ------------------------------------------- 14 | EOF 15 | -------------------------------------------------------------------------------- /test/fe_linear/scripts/4link_4GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../fe_linear 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/fullempty/ 20 | 21 | 22 | while [ $THREADS -lt 101 ] 23 | do 24 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS.$CAPACITY.$THREADS.txt 2>&1 26 | THREADS=$[$THREADS+1] 27 | done 28 | -------------------------------------------------------------------------------- /test/fe_linear/scripts/8link_8GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../fe_linear 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=8 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=64 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/fullempty/ 20 | 21 | 22 | while [ $THREADS -lt 101 ] 23 | do 24 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS.$CAPACITY.$THREADS.txt 2>&1 26 | THREADS=$[$THREADS+1] 27 | done 28 | -------------------------------------------------------------------------------- /test/fe_linear/scripts/runall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./4link_4GB.sh 4 | ./8link_8GB.sh 5 | -------------------------------------------------------------------------------- /test/fe_linear/scripts/smalltest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../fe_linear 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | THREADS=2 17 | LIBSRC=../../../cmc/fullempty/ 18 | 19 | 20 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 21 | 22 | 23 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS 24 | -------------------------------------------------------------------------------- /test/fe_tree/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: FE_TREE 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: fe_tree 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/fe_tree.o: $(SRC)/fe_tree.c 18 | fe_tree: $(SRC)/fe_tree.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 19 | $(CC) $(CFLAGS) -o $@ $(SRC)/fe_tree.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 20 | clean: 21 | rm -Rf ./fe_tree ./src/*.o 22 | -------------------------------------------------------------------------------- /test/fe_tree/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: FE_LINEAR 2 | ------------------------------------------- 3 | Executes a test of a parallel, static 4 | tree barrier using cmc libraries 5 | using the following cmc libaries: 6 | 7 | - ReadXX 8 | - ReadEF 9 | - ReadFF 10 | - WriteXE 11 | - WriteXF 12 | - IncFF 13 | 14 | These libraries can be found in the 15 | ~/cmc/fullempty/ directory. 16 | They are built by default with "make" 17 | 18 | ------------------------------------------- 19 | EOF 20 | -------------------------------------------------------------------------------- /test/fe_tree/scripts/4link_4GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../fe_tree 6 | RUNDIR=`pwd` 7 | 8 | BANKS=8 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=128 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/fullempty/ 20 | 21 | 22 | while [ $THREADS -lt 86 ] 23 | do 24 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS.$CAPACITY.$THREADS.txt 2>&1 26 | THREADS=$[$THREADS+1] 27 | done 28 | -------------------------------------------------------------------------------- /test/fe_tree/scripts/8link_8GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../fe_tree 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=8 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=128 13 | XDEPTH=128 14 | VAULTS=64 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/fullempty/ 20 | 21 | 22 | while [ $THREADS -lt 86 ] 23 | do 24 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS.$CAPACITY.$THREADS.txt 2>&1 26 | THREADS=$[$THREADS+1] 27 | done 28 | -------------------------------------------------------------------------------- /test/fe_tree/scripts/runall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./4link_4GB.sh 4 | ./8link_8GB.sh 5 | -------------------------------------------------------------------------------- /test/fe_tree/scripts/smalltest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../fe_tree 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | THREADS=10 17 | LIBSRC=../../../cmc/fullempty/ 18 | 19 | 20 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 21 | 22 | 23 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS 24 | -------------------------------------------------------------------------------- /test/gups/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: GUPS 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: gups 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/gups.o: $(SRC)/gups.c 18 | gups: $(SRC)/gups.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 19 | $(CC) $(CFLAGS) -o $@ $(SRC)/gups.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 20 | clean: 21 | rm -Rf ./gups ./src/*.o 22 | -------------------------------------------------------------------------------- /test/gups/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: GUPS 2 | ------------------------------------------- 3 | ------------------------------------------- 4 | EOF 5 | -------------------------------------------------------------------------------- /test/gups/scripts/4link_2GB_64TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MACROS="../../../include/hmc_sim_macros.h" 6 | 7 | REV=`cat $MACROS | grep HMC_PRODUCT_REVISION | grep define | awk '{print $3}'` 8 | 9 | if [ -z $REV ]; then 10 | echo "Error : only valid in Gen1 HMC Devices"; 11 | exit 1; 12 | elif [ "$REV" == "0x2" ]; then 13 | echo "Error : only valid in Gen1 HMC Devices"; 14 | exit 1; 15 | fi 16 | 17 | GUPS=../gups 18 | RUNDIR=`pwd` 19 | 20 | BANKS=8 21 | CAPACITY=2 22 | LINKS=4 23 | BSIZE=64 24 | QDEPTH=64 25 | XDEPTH=128 26 | VAULTS=32 27 | #NRQSTS=134217728 28 | #NRQSTS=33554432 29 | NRQSTS=2147483648 30 | #NRQSTS=4096 31 | DRAMS=20 32 | #THREADS=16 33 | #THREADS=32 34 | THREADS=64 35 | SIMD=8 36 | 37 | 38 | echo "Executing $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS" 39 | 40 | 41 | $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS 42 | -------------------------------------------------------------------------------- /test/gups/scripts/4link_4GB_64TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | GUPS=../gups 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | #NRQSTS=134217728 16 | #NRQSTS=33554432 17 | NRQSTS=2147483648 18 | #NRQSTS=4096 19 | DRAMS=20 20 | #THREADS=16 21 | #THREADS=32 22 | THREADS=64 23 | SIMD=8 24 | 25 | 26 | echo "Executing $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS" 27 | 28 | 29 | $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS 30 | -------------------------------------------------------------------------------- /test/gups/scripts/4link_small.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | GUPS=../gups 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | #NRQSTS=134217728 16 | #NRQSTS=33554432 17 | #NRQSTS=2147483648 18 | NRQSTS=4096 19 | DRAMS=20 20 | #THREADS=16 21 | #THREADS=32 22 | THREADS=64 23 | SIMD=8 24 | 25 | 26 | echo "Executing $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS" 27 | 28 | 29 | $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS 30 | -------------------------------------------------------------------------------- /test/gups/scripts/8link_4GB_64TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | GUPS=../gups 6 | RUNDIR=`pwd` 7 | 8 | BANKS=8 9 | CAPACITY=4 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | #NRQSTS=134217728 16 | #NRQSTS=33554432 17 | NRQSTS=2147483648 18 | #NRQSTS=4096 19 | DRAMS=20 20 | #THREADS=16 21 | #THREADS=32 22 | THREADS=64 23 | SIMD=8 24 | 25 | 26 | echo "Executing $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS" 27 | 28 | 29 | $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS 30 | -------------------------------------------------------------------------------- /test/gups/scripts/8link_8GB_64TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | GUPS=../gups 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=8 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | #NRQSTS=134217728 16 | #NRQSTS=33554432 17 | NRQSTS=2147483648 18 | #NRQSTS=4096 19 | DRAMS=20 20 | #THREADS=16 21 | #THREADS=32 22 | THREADS=64 23 | SIMD=8 24 | 25 | 26 | echo "Executing $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS" 27 | 28 | 29 | $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS 30 | -------------------------------------------------------------------------------- /test/gups/scripts/8link_small.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | GUPS=../gups 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=8 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=64 15 | #NRQSTS=134217728 16 | #NRQSTS=33554432 17 | #NRQSTS=2147483648 18 | NRQSTS=4096 19 | DRAMS=20 20 | #THREADS=16 21 | #THREADS=32 22 | THREADS=64 23 | SIMD=8 24 | 25 | 26 | echo "Executing $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS" 27 | 28 | 29 | $GUPS -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -s $SIMD -v $VAULTS -x $XDEPTH -N $NRQSTS -T $THREADS 30 | -------------------------------------------------------------------------------- /test/hmc_physrand/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: PHYSRAND 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | OBJS=$(SRC)/genrand.o $(SRC)/execute_test.o $(SRC)/shiftamt.o 13 | 14 | all: physrand 15 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/genrand.o: $(SRC)/genrand.c 18 | $(CC) $(CFLAGS) -c -o $@ $< 19 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 20 | $(CC) $(CFLAGS) -c -o $@ $< 21 | physrand: $(SRC)/genrand.o $(SRC)/execute_test.o $(SRC)/shiftamt.o 22 | $(CC) $(CFLAGS) -c -o $(SRC)/physrand_main.o $(SRC)/physrand_main.c 23 | $(CC) $(CFLAGS) -o $@ $(SRC)/physrand_main.o $(OBJS) $(LDFLAGS) $(LDLIBS) 24 | clean: 25 | rm -Rf ./physrand ./src/*.o 26 | -------------------------------------------------------------------------------- /test/hmc_physrand/README: -------------------------------------------------------------------------------- 1 | HMC_PHYSRAND 2 | 3 | 4 | -------------------------------------------------------------------------------- /test/hmc_physrand/scripts/4link_2GB_bcopy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=8 7 | CAPACITY=2 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=33554432 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/hmc_physrand/scripts/4link_4GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PHYSRAND=../physrand 4 | 5 | BANKS=16 6 | CAPACITY=4 7 | LINKS=4 8 | BSIZE=64 9 | QDEPTH=64 10 | XDEPTH=128 11 | VAULTS=32 12 | NRQSTS=1024 13 | READ=50 14 | WRITE=50 15 | DRAMS=20 16 | 17 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 18 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 19 | 20 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 22 | -------------------------------------------------------------------------------- /test/hmc_physrand/scripts/4link_4GB_bcopy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=33554432 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/hmc_physrand/scripts/8link_4GB_bcopy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=8 7 | CAPACITY=4 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=33554432 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/hmc_physrand/scripts/8link_8GB_bcopy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=16 7 | CAPACITY=8 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=33554432 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/hmc_physrand/scripts/smalltest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # - executes a test of a bcopy for a 4GB device [2GB bcopy] 3 | 4 | PHYSRAND=../physrand 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | NRQSTS=50 14 | READ=50 15 | WRITE=50 16 | DRAMS=20 17 | 18 | echo "Executing : $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 19 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656" 20 | 21 | $PHYSRAND -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -R $READ -W $WRITE -S 65656 23 | -------------------------------------------------------------------------------- /test/load_fe/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: LOAD_FE 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: load_fe 13 | load_fe: 14 | $(CC) $(CFLAGS) -o $@ $(SRC)/load_fe.c $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./load_fe ./src/*.o 17 | -------------------------------------------------------------------------------- /test/load_fe/README: -------------------------------------------------------------------------------- 1 | LOAD_FE HMCSIM-2.0 EXAMPLE 2 | ------------------------------ 3 | tests the ability to load all 4 | the necessary cmc libraries 5 | 6 | EX: 7 | ./load_fe -b 16 -c 4 -d 20 -l 4 -n 1 -q 64 -v 16 -x 128 8 | -------------------------------------------------------------------------------- /test/mutex/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: MUTEX 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: mutex 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/mutex.o: $(SRC)/mutex.c 18 | mutex: $(SRC)/mutex.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 19 | $(CC) $(CFLAGS) -o $@ $(SRC)/mutex.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 20 | clean: 21 | rm -Rf ./mutex ./src/*.o 22 | -------------------------------------------------------------------------------- /test/mutex/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: MUTEX 2 | ------------------------------------------- 3 | ------------------------------------------- 4 | EOF 5 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | while [ $THREADS -lt 101 ] 23 | do 24 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS.$CAPACITY.$THREADS.txt 2>&1 26 | THREADS=$[$THREADS+1] 27 | done 28 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_128TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=128 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_16TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=16 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_256TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=256 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_2TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_32TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=32 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_4TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=4 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_512TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=512 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_64TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=64 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/4link_4GB_8TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=8 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 23 | 24 | 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS_$CAPACITY_$THREADS.txt 2>&1 26 | -------------------------------------------------------------------------------- /test/mutex/scripts/8link_8GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=8 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=64 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | while [ $THREADS -lt 101 ] 23 | do 24 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS.$CAPACITY.$THREADS.txt 2>&1 26 | THREADS=$[$THREADS+1] 27 | done 28 | -------------------------------------------------------------------------------- /test/mutex/scripts/8link_8GB_64TH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=8 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | THREADS=64 17 | LIBSRC=../../../cmc/mutex/ 18 | 19 | 20 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 21 | 22 | 23 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS 24 | -------------------------------------------------------------------------------- /test/mutex/scripts/runall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./4link_4GB.sh 4 | ./8link_8GB.sh 5 | -------------------------------------------------------------------------------- /test/mutex/scripts/smalltest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | THREADS=2 17 | LIBSRC=../../../cmc/mutex/ 18 | 19 | 20 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 21 | 22 | 23 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS 24 | -------------------------------------------------------------------------------- /test/mutex_linear/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: MUTEX_LINEAR 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: mutex_linear 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/mutex_linear.o: $(SRC)/mutex_linear.c 18 | mutex_linear: $(SRC)/mutex_linear.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 19 | $(CC) $(CFLAGS) -o $@ $(SRC)/mutex_linear.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 20 | clean: 21 | rm -Rf ./mutex_linear ./src/*.o 22 | -------------------------------------------------------------------------------- /test/mutex_linear/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: FE_LINEAR 2 | ------------------------------------------- 3 | Executes a test of a parallel spin-wait 4 | lock algorithm. Requires the use 5 | of the following CMC libraries: 6 | - ReadEF 7 | - WriteXE 8 | 9 | These libraries can be found in the 10 | ~/cmc/fullempty/ directory. 11 | They are built by default with "make" 12 | 13 | ------------------------------------------- 14 | EOF 15 | -------------------------------------------------------------------------------- /test/mutex_linear/scripts/4link_4GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex_linear 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=128 13 | XDEPTH=128 14 | VAULTS=32 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | while [ $THREADS -lt 101 ] 23 | do 24 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS.$CAPACITY.$THREADS.txt 2>&1 26 | THREADS=$[$THREADS+1] 27 | done 28 | -------------------------------------------------------------------------------- /test/mutex_linear/scripts/8link_8GB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex_linear 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=8 10 | LINKS=8 11 | BSIZE=64 12 | QDEPTH=128 13 | XDEPTH=128 14 | VAULTS=64 15 | DRAMS=20 16 | #THREADS=16 17 | #THREADS=32 18 | THREADS=2 19 | LIBSRC=../../../cmc/mutex/ 20 | 21 | 22 | while [ $THREADS -lt 101 ] 23 | do 24 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 25 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS >> $LINKS.$CAPACITY.$THREADS.txt 2>&1 26 | THREADS=$[$THREADS+1] 27 | done 28 | -------------------------------------------------------------------------------- /test/mutex_linear/scripts/runall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./4link_4GB.sh 4 | ./8link_8GB.sh 5 | -------------------------------------------------------------------------------- /test/mutex_linear/scripts/smalltest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ulimit -s unlimited 4 | 5 | MUTEX=../mutex_linear 6 | RUNDIR=`pwd` 7 | 8 | BANKS=16 9 | CAPACITY=4 10 | LINKS=4 11 | BSIZE=64 12 | QDEPTH=64 13 | XDEPTH=128 14 | VAULTS=16 15 | DRAMS=20 16 | THREADS=2 17 | LIBSRC=../../../cmc/mutex/ 18 | 19 | 20 | echo "Executing $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS" 21 | 22 | 23 | $MUTEX -L $LIBSRC -b $BANKS -c $CAPACITY -d $DRAMS -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -v $VAULTS -x $XDEPTH -T $THREADS 24 | -------------------------------------------------------------------------------- /test/simple/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple 13 | simple: 14 | $(CC) $(CFLAGS) -o $@ $(SRC)/simple.c $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tactcomplabs/gc64-hmcsim/a6585fd160a72fa562121e6f466a7f6cc8c5b256/test/simple/README -------------------------------------------------------------------------------- /test/simple_api/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM SIMPLE_API TEST MAKEFILE 4 | # 5 | # Drives building all the hmcsim simple api tests 6 | 7 | 8 | SUBDIRS := simple4GB simple8GB simple4GBio simple8GBio simple4GBstall simple8GBstall simpletrace4GB simpletrace8GB simpleconfig4GB simpleconfig8GB simpletecplot4GB simpletecplot8GB simple4GBamo simple8GBamo simple4GBcmc simple8GBcmc 9 | 10 | CLEANDIRS := $(addsuffix .clean, $(SUBDIRS)) 11 | 12 | all:$(SUBDIRS) 13 | $(SUBDIRS): 14 | $(MAKE) -C $@ 15 | .PHONY: all $(SUBDIRS) 16 | 17 | clean: $(CLEANDIRS) 18 | $(CLEANDIRS): 19 | $(MAKE) -C $(basename $@) clean 20 | .PHONY: clean $(CLEANDIRS) 21 | 22 | -------------------------------------------------------------------------------- /test/simple_api/Makefile.inc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | #--------------------------------------------------------- 5 | # MACROS 6 | # 7 | #--------------------------------------------------------- 8 | 9 | #-- HMCSIM_TEST_MACROS 10 | #-- HMCSIM TEST BUILD MACROS 11 | HMCSIM_TEST_MACROS= 12 | 13 | #-- CC 14 | #-- C COMPILER 15 | CC=gcc 16 | 17 | #-- CXX 18 | #-- C++ COMPILER 19 | CXX=g++ 20 | 21 | #-- INC 22 | #-- INCLUDE DIRECTORIES 23 | INC=-I../../../include/ 24 | 25 | #-- CFLAGS 26 | #-- C COMPILER FLAGS 27 | CFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_TEST_MACROS) 28 | 29 | #-- CXXFLAGS 30 | #-- C++ COMPILER FLAGS 31 | CXXFLAGS=-O0 -Wall -g $(INC) $(HMCSIM_TEST_MACROS) 32 | 33 | #-- LDFLAGS 34 | #-- LINKER OPTIONS 35 | LDFLAGS=-L../../../ 36 | 37 | #-- LDLIBS 38 | #-- LIBRARIES FOR LINKING 39 | LDLIBS=-lhmcsim -ldl 40 | 41 | #-- AR 42 | #-- ARCHIVE BINARY 43 | AR=ar 44 | 45 | #-- AR_OPTS 46 | #-- ARCHIVE OPTIONS 47 | AR_OPTS=rcs 48 | 49 | #-- DOXYGEN 50 | #-- DOXYGEN BINARY 51 | DOXYGEN=`which doxygen` 52 | 53 | #-- EOF 54 | -------------------------------------------------------------------------------- /test/simple_api/README: -------------------------------------------------------------------------------- 1 | All the tests in the SIMPLE_API directory 2 | require the HMC-Sim 3.0+ Simple API 3 | extensions 4 | -------------------------------------------------------------------------------- /test/simple_api/simple4GB/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE4GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple4GB 13 | simple4GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple4GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple4GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple4GB/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE4GB 2 | --------------------------- 3 | Simple API 4GB device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple4GB/src/simple4GB.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * _SIMPLE4GB_CPP_ 3 | * 4 | * HMC-Sim SIMPLE API 4GB test 5 | * 6 | */ 7 | 8 | #include 9 | #include "hmc_sim.h" 10 | 11 | int main( int argc, char **argv ){ 12 | 13 | /* variables */ 14 | int ret = 0; 15 | struct hmcsim_t hmc; 16 | 17 | /* init the environment */ 18 | ret = hmcsim_simple_init( &hmc, 4 ); 19 | if( ret != 0 ){ 20 | std::cout << "error : hmcsim_simple_init returned an error : " << ret << std::endl; 21 | return -1; 22 | } 23 | 24 | /* free the environment */ 25 | ret = hmcsim_free( &hmc ); 26 | if( ret != 0 ){ 27 | std::cout << "error : hmcsim_free returned an error : " << ret << std::endl; 28 | return -1; 29 | } 30 | 31 | return 0; 32 | } 33 | 34 | /* EOF */ 35 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBamo/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE4GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple4GB 13 | simple4GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple4GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple4GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBamo/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE4GBAMO 2 | --------------------------- 3 | Simple API 4GB AMO device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBcmc/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE4GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple4GB 13 | simple4GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple4GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple4GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBcmc/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE4GBCMC 2 | --------------------------- 3 | Simple API 4GB CMC device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBcmc/src/simple4GB.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * _SIMPLE4GB_CPP_ 3 | * 4 | * HMC-Sim SIMPLE API 4GB test 5 | * 6 | */ 7 | 8 | #include 9 | #include 10 | #include "hmc_sim.h" 11 | 12 | int main( int argc, char **argv ){ 13 | 14 | /* variables */ 15 | int ret = 0; 16 | struct hmcsim_t hmc; 17 | 18 | /* init the environment */ 19 | ret = hmcsim_simple_init( &hmc, 4 ); 20 | if( ret != 0 ){ 21 | std::cout << "error : hmcsim_simple_init returned an error : " << ret << std::endl; 22 | return -1; 23 | } 24 | 25 | /* load the cmc lib */ 26 | ret = hmcsim_load_cmc( &hmc, "../../../cmc/amo_popcount/libamopopcount.so"); 27 | if( ret != 0 ){ 28 | std::cout << "error : hmcsim_load_cmc returned an error : " << ret << std::endl; 29 | hmcsim_free( &hmc ); 30 | return -1; 31 | }else{ 32 | std::cout << "success : loaded cmc library at ../../../cmc/amo_popcount/libamopopcount.so" << std::endl; 33 | } 34 | 35 | /* perform a simple 16byte read */ 36 | uint64_t addr = 0x00ull; 37 | uint8_t data[16]; 38 | int token = -1; 39 | token = hmcsim_simple_cmc( &hmc, addr, &(data[0]), CMC05 ); 40 | if( token < 0 ){ 41 | /* the request queue should not be full here */ 42 | std::cout << "error : hmcsim_simple_cmc returned an error : " << token << std::endl; 43 | hmcsim_free( &hmc ); 44 | return -1; 45 | }else{ 46 | std::cout << "success : sent amo_popcount request; token = " << token << std::endl; 47 | } 48 | 49 | /* wait for the read to return */ 50 | bool rsp = false; 51 | while( !rsp ){ 52 | hmcsim_clock(&hmc); 53 | ret = hmcsim_simple_stat( &hmc, token, &(data[0]) ); 54 | if( ret == 1 ){ 55 | std::cout << "success : hmcsim_simple_stat found our response" << std::endl; 56 | rsp = true; 57 | }else if( ret == -1 ){ 58 | std::cout << "error : hmcsim_simple_stat returned an error : " << ret << std::endl; 59 | hmcsim_free( &hmc ); 60 | return -1; 61 | } 62 | } 63 | 64 | /* free the environment */ 65 | ret = hmcsim_free( &hmc ); 66 | if( ret != 0 ){ 67 | std::cout << "error : hmcsim_free returned an error : " << ret << std::endl; 68 | return -1; 69 | } 70 | 71 | return 0; 72 | } 73 | 74 | /* EOF */ 75 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBio/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE4GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple4GB 13 | simple4GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple4GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple4GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBio/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE4GBIO 2 | --------------------------- 3 | Simple API 4GB IO device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBstall/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE4GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple4GB 13 | simple4GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple4GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple4GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple4GBstall/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE4GBSTALL 2 | --------------------------- 3 | Simple API 4GB request stall device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple8GB/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE8GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple8GB 13 | simple8GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple8GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple8GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple8GB/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE8GB 2 | --------------------------- 3 | Simple API 8GB device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple8GB/src/simple8GB.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * _SIMPLE8GB_CPP_ 3 | * 4 | * HMC-Sim SIMPLE API 4GB test 5 | * 6 | */ 7 | 8 | #include 9 | #include "hmc_sim.h" 10 | 11 | int main( int argc, char **argv ){ 12 | 13 | /* variables */ 14 | int ret = 0; 15 | struct hmcsim_t hmc; 16 | 17 | /* init the environment */ 18 | ret = hmcsim_simple_init( &hmc, 8 ); 19 | if( ret != 0 ){ 20 | std::cout << "error : hmcsim_simple_init returned an error : " << ret << std::endl; 21 | return -1; 22 | } 23 | 24 | /* free the environment */ 25 | ret = hmcsim_free( &hmc ); 26 | if( ret != 0 ){ 27 | std::cout << "error : hmcsim_free returned an error : " << ret << std::endl; 28 | return -1; 29 | } 30 | 31 | return 0; 32 | } 33 | 34 | /* EOF */ 35 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBamo/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE8GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple8GB 13 | simple8GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple8GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple8GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBamo/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE8GBAMO 2 | --------------------------- 3 | Simple API 8GB AMO device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBcmc/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE8GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple8GB 13 | simple8GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple8GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple8GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBcmc/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE8GBCMC 2 | --------------------------- 3 | Simple API 8GB CMC device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBcmc/src/simple8GB.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * _SIMPLE8GB_CPP_ 3 | * 4 | * HMC-Sim SIMPLE API 8GB test 5 | * 6 | */ 7 | 8 | #include 9 | #include 10 | #include "hmc_sim.h" 11 | 12 | int main( int argc, char **argv ){ 13 | 14 | /* variables */ 15 | int ret = 0; 16 | struct hmcsim_t hmc; 17 | 18 | /* init the environment */ 19 | ret = hmcsim_simple_init( &hmc, 8 ); 20 | if( ret != 0 ){ 21 | std::cout << "error : hmcsim_simple_init returned an error : " << ret << std::endl; 22 | return -1; 23 | } 24 | 25 | /* load the cmc lib */ 26 | ret = hmcsim_load_cmc( &hmc, "../../../cmc/amo_popcount/libamopopcount.so"); 27 | if( ret != 0 ){ 28 | std::cout << "error : hmcsim_load_cmc returned an error : " << ret << std::endl; 29 | return -1; 30 | }else{ 31 | std::cout << "success : loaded cmc library at ../../../cmc/amo_popcount/libamopopcount.so" << std::endl; 32 | } 33 | 34 | /* perform a simple 16byte read */ 35 | uint64_t addr = 0x00ull; 36 | uint8_t data[16]; 37 | int token = -1; 38 | token = hmcsim_simple_cmc( &hmc, addr, &(data[0]), CMC05 ); 39 | if( token < 0 ){ 40 | /* the request queue should not be full here */ 41 | std::cout << "error : hmcsim_simple_cmc returned an error : " << token << std::endl; 42 | hmcsim_free( &hmc ); 43 | return -1; 44 | }else{ 45 | std::cout << "success : sent amo_popcount request; token = " << token << std::endl; 46 | } 47 | 48 | /* wait for the read to return */ 49 | bool rsp = false; 50 | while( !rsp ){ 51 | hmcsim_clock(&hmc); 52 | ret = hmcsim_simple_stat( &hmc, token, &(data[0]) ); 53 | if( ret == 1 ){ 54 | std::cout << "success : hmcsim_simple_stat found our response" << std::endl; 55 | rsp = true; 56 | }else if( ret == -1 ){ 57 | std::cout << "error : hmcsim_simple_stat returned an error : " << ret << std::endl; 58 | hmcsim_free( &hmc ); 59 | return -1; 60 | } 61 | } 62 | 63 | /* free the environment */ 64 | ret = hmcsim_free( &hmc ); 65 | if( ret != 0 ){ 66 | std::cout << "error : hmcsim_free returned an error : " << ret << std::endl; 67 | return -1; 68 | } 69 | 70 | return 0; 71 | } 72 | 73 | /* EOF */ 74 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBio/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE8GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple8GB 13 | simple8GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple8GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple8GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBio/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE8GBIO 2 | --------------------------- 3 | Simple API 8GB io device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBstall/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE8GBSTALL 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple8GB 13 | simple8GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple8GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple8GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simple8GBstall/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLE8GBSTALL 2 | --------------------------- 3 | Simple API 8GB request stall device test 4 | -------------------------------------------------------------------------------- /test/simple_api/simpleconfig4GB/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE4GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple4GB 13 | simple4GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple4GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple4GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simpleconfig4GB/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLECONFIG4GB 2 | --------------------------- 3 | Simple API 4GB request stall device test with tracing from config file 4 | -------------------------------------------------------------------------------- /test/simple_api/simpleconfig4GB/config.sample.4: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | -------------------------------------------------------------------------------- /test/simple_api/simpleconfig8GB/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE8GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple8GB 13 | simple8GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple8GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple8GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simpleconfig8GB/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLECONFIG8GB 2 | --------------------------- 3 | Simple API 8GB request stall device test with tracing from config file 4 | -------------------------------------------------------------------------------- /test/simple_api/simpleconfig8GB/config.sample.8: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | -------------------------------------------------------------------------------- /test/simple_api/simpletecplot4GB/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE4GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple4GB 13 | simple4GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple4GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple4GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simpletecplot4GB/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLETECPLOT4GB 2 | --------------------------- 3 | Simple API 4GB request stall device test with tracing from config file and 4 | tecplot output 5 | -------------------------------------------------------------------------------- /test/simple_api/simpletecplot4GB/config.sample.4: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | 24 | TECPLOT_OUTPUT = 1 25 | 26 | TECPLOT_PREFIX = SIMPLE4 27 | -------------------------------------------------------------------------------- /test/simple_api/simpletecplot8GB/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE8GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple8GB 13 | simple8GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple8GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple8GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simpletecplot8GB/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLECONFIG8GB 2 | --------------------------- 3 | Simple API 8GB request stall device test with tracing from config file 4 | -------------------------------------------------------------------------------- /test/simple_api/simpletecplot8GB/config.sample.8: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | 24 | TECPLOT_OUTPUT = 1 25 | 26 | TECPLOT_PREFIX = SIMPLE8 27 | -------------------------------------------------------------------------------- /test/simple_api/simpletrace4GB/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE4GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple4GB 13 | simple4GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple4GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple4GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simpletrace4GB/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLETRACE4GB 2 | --------------------------- 3 | Simple API 4GB request stall device test with tracing 4 | -------------------------------------------------------------------------------- /test/simple_api/simpletrace8GB/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE8GB 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple8GB 13 | simple8GB: 14 | $(CXX) $(CXXFLAGS) -o $@ $(SRC)/simple8GB.cpp $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple8GB ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_api/simpletrace8GB/README: -------------------------------------------------------------------------------- 1 | SIMPLE_API SIMPLETRACE8GB 2 | --------------------------- 3 | Simple API 8GB request stall device test with tracing 4 | -------------------------------------------------------------------------------- /test/simple_cmc/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SIMPLE 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: simple_cmc 13 | simple_cmc: 14 | $(CC) $(CFLAGS) -o $@ $(SRC)/simple.c $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./simple_cmc ./src/*.o 17 | -------------------------------------------------------------------------------- /test/simple_cmc/README: -------------------------------------------------------------------------------- 1 | SIMPLE_CMC HMCSIM-2.0 EXAMPLE 2 | ----------------------------- 3 | tests the simple initialization 4 | of a cmc library 5 | -------------------------------------------------------------------------------- /test/spmv/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: GUPS 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | LCFLAGS := -I$(SRC) 13 | 14 | all: spmv 15 | $(SRC)/readmat.o: $(SRC)/readmat.c 16 | $(CC) $(CFLAGS) $(LCFLAGS) -c -o $@ $< 17 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 18 | $(CC) $(CFLAGS) $(LCFLAGS) -c -o $@ $< 19 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 20 | $(CC) $(CFLAGS) $(LCLFLAGS) -c -o $@ $< 21 | $(SRC)/spmv.o: $(SRC)/spmv.c 22 | spmv: $(SRC)/spmv.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(SRC)/readmat.o 23 | $(CC) $(CFLAGS) -o $@ $(SRC)/spmv.o $(SRC)/shiftamt.o\ 24 | $(SRC)/readmat.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 25 | clean: 26 | rm -Rf ./spmv ./src/*.o 27 | -------------------------------------------------------------------------------- /test/spmv/README: -------------------------------------------------------------------------------- 1 | HMC-SIM SPMV TEST: CURRENTLY NOT FUNCTIONAL 2 | ------------------------------------------- 3 | EOF 4 | -------------------------------------------------------------------------------- /test/spmv/src/spmv.h: -------------------------------------------------------------------------------- 1 | /* 2 | * _SPMV_H_ 3 | * 4 | * SPARSE MATRIX VECTOR HMCSIM TEST HEADER FILE 5 | * 6 | */ 7 | 8 | #ifndef _SPMV_H_ 9 | #define _SPMV_H_ 10 | 11 | #include 12 | 13 | /* ------------------------------------------ DATA STRUCTURES */ 14 | struct csr_t { 15 | uint64_t *vals; 16 | uint64_t *cols; 17 | uint64_t *rows; 18 | uint64_t *x_vect; 19 | uint64_t *product; 20 | }; 21 | 22 | #endif /* _SPMV_H_ */ 23 | /* EOF */ 24 | -------------------------------------------------------------------------------- /test/sst/6.0.0/goblinHMC1.py: -------------------------------------------------------------------------------- 1 | # Automatically generated SST Python input 2 | #-- copied from sdl-1.py 3 | import sst 4 | 5 | # Define SST core options 6 | sst.setProgramOption("timebase", "1ps") 7 | sst.setProgramOption("stopAtCycle", "0 ns") 8 | 9 | # Define the simulation components 10 | comp_cpu = sst.Component("cpu", "memHierarchy.trivialCPU") 11 | comp_cpu.addParams({ 12 | "do_write" : "1", 13 | "num_loadstore" : "1000", 14 | "commFreq" : "100", 15 | "memSize" : "0x1000" 16 | }) 17 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 18 | comp_l1cache.addParams({ 19 | "access_latency_cycles" : "4", 20 | "cache_frequency" : "2 Ghz", 21 | "replacement_policy" : "lru", 22 | "coherence_protocol" : "MSI", 23 | "associativity" : "4", 24 | "cache_line_size" : "64", 25 | #"debug" : "1", 26 | "debug_level" : "10", 27 | "L1" : "1", 28 | "LL" : "1", 29 | "cache_size" : "2 KB" 30 | }) 31 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 32 | comp_memory.addParams({ 33 | "coherence_protocol" : "MSI", 34 | "debug" : "1", 35 | "backend.access_time" : "1000 ns", 36 | "clock" : "1GHz", 37 | "backend" : "memHierarchy.goblinHMCSim", 38 | "verbose" : "1", 39 | "backend.mem_size" : "512", 40 | }) 41 | 42 | # Enable statistics 43 | sst.setStatisticLoadLevel(7) 44 | sst.setStatisticOutput("sst.statOutputConsole") 45 | sst.enableAllStatisticsForComponentType("memHierarchy.Cache") 46 | sst.enableAllStatisticsForComponentType("memHierarchy.MemController") 47 | 48 | 49 | # Define the simulation links 50 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 51 | link_cpu_cache_link.connect( (comp_cpu, "mem_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 52 | link_mem_bus_link = sst.Link("link_mem_bus_link") 53 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 54 | # End of generated output. 55 | -------------------------------------------------------------------------------- /test/sst/6.0.0/goblin_singlestream1-trace.py: -------------------------------------------------------------------------------- 1 | import sst 2 | 3 | # Define SST core options 4 | sst.setProgramOption("timebase", "1ps") 5 | sst.setProgramOption("stopAtCycle", "0 ns") 6 | 7 | # Define the simulation components 8 | comp_cpu = sst.Component("cpu", "miranda.BaseCPU") 9 | comp_cpu.addParams({ 10 | "verbose" : 0, 11 | "generator" : "miranda.SingleStreamGenerator", 12 | "generatorParams.verbose" : 0, 13 | "generatorParams.startat" : 3, 14 | "generatorParams.count" : 500000, 15 | "generatorParams.max_address" : 512000, 16 | "printStats" : 1, 17 | }) 18 | 19 | # Tell SST what statistics handling we want 20 | sst.setStatisticLoadLevel(4) 21 | 22 | # Enable statistics outputs 23 | comp_cpu.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 24 | 25 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 26 | comp_l1cache.addParams({ 27 | "access_latency_cycles" : "2", 28 | "cache_frequency" : "2 Ghz", 29 | "replacement_policy" : "lru", 30 | "coherence_protocol" : "MESI", 31 | "associativity" : "4", 32 | "cache_line_size" : "64", 33 | "prefetcher" : "cassini.StridePrefetcher", 34 | "debug" : "1", 35 | "L1" : "1", 36 | "cache_size" : "2KB" 37 | }) 38 | 39 | # Enable statistics outputs 40 | comp_l1cache.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 41 | 42 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 43 | comp_memory.addParams({ 44 | "coherence_protocol" : "MESI", 45 | "backend.access_time" : "1000 ns", 46 | "backend.mem_size" : "512", 47 | "clock" : "1GHz", 48 | "backend" : "memHierarchy.goblinHMCSim", 49 | "backend.trace-banks" : "1", 50 | "backend.trace-queue" : "1", 51 | "backend.trace-cmds" : "1", 52 | "backend.trace-latency" : "1", 53 | "backend.trace-stalls" : "1" 54 | }) 55 | 56 | 57 | # Define the simulation links 58 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 59 | link_cpu_cache_link.connect( (comp_cpu, "cache_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 60 | link_cpu_cache_link.setNoCut() 61 | 62 | link_mem_bus_link = sst.Link("link_mem_bus_link") 63 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 64 | -------------------------------------------------------------------------------- /test/sst/6.0.0/goblin_singlestream1.py: -------------------------------------------------------------------------------- 1 | import sst 2 | 3 | # Define SST core options 4 | sst.setProgramOption("timebase", "1ps") 5 | sst.setProgramOption("stopAtCycle", "0 ns") 6 | 7 | # Define the simulation components 8 | comp_cpu = sst.Component("cpu", "miranda.BaseCPU") 9 | comp_cpu.addParams({ 10 | "verbose" : 0, 11 | "generator" : "miranda.SingleStreamGenerator", 12 | "generatorParams.verbose" : 0, 13 | "generatorParams.startat" : 3, 14 | "generatorParams.count" : 500000, 15 | "generatorParams.max_address" : 512000, 16 | "printStats" : 1, 17 | }) 18 | 19 | # Tell SST what statistics handling we want 20 | sst.setStatisticLoadLevel(4) 21 | 22 | # Enable statistics outputs 23 | comp_cpu.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 24 | 25 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 26 | comp_l1cache.addParams({ 27 | "access_latency_cycles" : "2", 28 | "cache_frequency" : "2 Ghz", 29 | "replacement_policy" : "lru", 30 | "coherence_protocol" : "MESI", 31 | "associativity" : "4", 32 | "cache_line_size" : "64", 33 | "prefetcher" : "cassini.StridePrefetcher", 34 | "debug" : "1", 35 | "L1" : "1", 36 | "cache_size" : "2KB" 37 | }) 38 | 39 | # Enable statistics outputs 40 | comp_l1cache.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 41 | 42 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 43 | comp_memory.addParams({ 44 | "coherence_protocol" : "MESI", 45 | "backend.access_time" : "1000 ns", 46 | "backend.mem_size" : "512", 47 | "clock" : "1GHz", 48 | "backend" : "memHierarchy.goblinHMCSim" 49 | }) 50 | 51 | 52 | # Define the simulation links 53 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 54 | link_cpu_cache_link.connect( (comp_cpu, "cache_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 55 | link_cpu_cache_link.setNoCut() 56 | 57 | link_mem_bus_link = sst.Link("link_mem_bus_link") 58 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 59 | -------------------------------------------------------------------------------- /test/sst/6.1.0/goblinHMC1.py: -------------------------------------------------------------------------------- 1 | # Automatically generated SST Python input 2 | #-- copied from sdl-1.py 3 | import sst 4 | 5 | # Define SST core options 6 | sst.setProgramOption("timebase", "1ps") 7 | sst.setProgramOption("stopAtCycle", "0 ns") 8 | 9 | # Define the simulation components 10 | comp_cpu = sst.Component("cpu", "memHierarchy.trivialCPU") 11 | comp_cpu.addParams({ 12 | "do_write" : "1", 13 | "num_loadstore" : "1000", 14 | "commFreq" : "100", 15 | "memSize" : "0x1000" 16 | }) 17 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 18 | comp_l1cache.addParams({ 19 | "access_latency_cycles" : "4", 20 | "cache_frequency" : "2 Ghz", 21 | "replacement_policy" : "lru", 22 | "coherence_protocol" : "MSI", 23 | "associativity" : "4", 24 | "cache_line_size" : "64", 25 | #"debug" : "1", 26 | "debug_level" : "10", 27 | "L1" : "1", 28 | "LL" : "1", 29 | "cache_size" : "2 KB" 30 | }) 31 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 32 | comp_memory.addParams({ 33 | "coherence_protocol" : "MSI", 34 | "debug" : "1", 35 | "backend.access_time" : "1000 ns", 36 | "clock" : "1GHz", 37 | "backend" : "memHierarchy.goblinHMCSim", 38 | "verbose" : "1", 39 | "backend.mem_size" : "512MiB", 40 | }) 41 | 42 | # Enable statistics 43 | sst.setStatisticLoadLevel(7) 44 | sst.setStatisticOutput("sst.statOutputConsole") 45 | sst.enableAllStatisticsForComponentType("memHierarchy.Cache") 46 | sst.enableAllStatisticsForComponentType("memHierarchy.MemController") 47 | 48 | 49 | # Define the simulation links 50 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 51 | link_cpu_cache_link.connect( (comp_cpu, "mem_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 52 | link_mem_bus_link = sst.Link("link_mem_bus_link") 53 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 54 | # End of generated output. 55 | -------------------------------------------------------------------------------- /test/sst/6.1.0/goblin_singlestream1-trace.py: -------------------------------------------------------------------------------- 1 | import sst 2 | 3 | # Define SST core options 4 | sst.setProgramOption("timebase", "1ps") 5 | sst.setProgramOption("stopAtCycle", "0 ns") 6 | 7 | # Define the simulation components 8 | comp_cpu = sst.Component("cpu", "miranda.BaseCPU") 9 | comp_cpu.addParams({ 10 | "verbose" : 0, 11 | "generator" : "miranda.SingleStreamGenerator", 12 | "generatorParams.verbose" : 0, 13 | "generatorParams.startat" : 3, 14 | "generatorParams.count" : 500000, 15 | "generatorParams.max_address" : 512000, 16 | "printStats" : 1, 17 | }) 18 | 19 | # Tell SST what statistics handling we want 20 | sst.setStatisticLoadLevel(4) 21 | 22 | # Enable statistics outputs 23 | comp_cpu.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 24 | 25 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 26 | comp_l1cache.addParams({ 27 | "access_latency_cycles" : "2", 28 | "cache_frequency" : "2 Ghz", 29 | "replacement_policy" : "lru", 30 | "coherence_protocol" : "MESI", 31 | "associativity" : "4", 32 | "cache_line_size" : "64", 33 | "prefetcher" : "cassini.StridePrefetcher", 34 | "debug" : "1", 35 | "L1" : "1", 36 | "cache_size" : "2KB" 37 | }) 38 | 39 | # Enable statistics outputs 40 | comp_l1cache.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 41 | 42 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 43 | comp_memory.addParams({ 44 | "coherence_protocol" : "MESI", 45 | "backend.access_time" : "1000 ns", 46 | "backend.mem_size" : "512MiB", 47 | "clock" : "1GHz", 48 | "backend" : "memHierarchy.goblinHMCSim", 49 | "backend.trace-banks" : "1", 50 | "backend.trace-queue" : "1", 51 | "backend.trace-cmds" : "1", 52 | "backend.trace-latency" : "1", 53 | "backend.trace-stalls" : "1" 54 | }) 55 | 56 | 57 | # Define the simulation links 58 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 59 | link_cpu_cache_link.connect( (comp_cpu, "cache_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 60 | link_cpu_cache_link.setNoCut() 61 | 62 | link_mem_bus_link = sst.Link("link_mem_bus_link") 63 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 64 | -------------------------------------------------------------------------------- /test/sst/6.1.0/goblin_singlestream1.py: -------------------------------------------------------------------------------- 1 | import sst 2 | 3 | # Define SST core options 4 | sst.setProgramOption("timebase", "1ps") 5 | sst.setProgramOption("stopAtCycle", "0 ns") 6 | 7 | # Define the simulation components 8 | comp_cpu = sst.Component("cpu", "miranda.BaseCPU") 9 | comp_cpu.addParams({ 10 | "verbose" : 0, 11 | "generator" : "miranda.SingleStreamGenerator", 12 | "generatorParams.verbose" : 0, 13 | "generatorParams.startat" : 3, 14 | "generatorParams.count" : 500000, 15 | "generatorParams.max_address" : 512000, 16 | "printStats" : 1, 17 | }) 18 | 19 | # Tell SST what statistics handling we want 20 | sst.setStatisticLoadLevel(4) 21 | 22 | # Enable statistics outputs 23 | comp_cpu.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 24 | 25 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 26 | comp_l1cache.addParams({ 27 | "access_latency_cycles" : "2", 28 | "cache_frequency" : "2 Ghz", 29 | "replacement_policy" : "lru", 30 | "coherence_protocol" : "MESI", 31 | "associativity" : "4", 32 | "cache_line_size" : "64", 33 | "prefetcher" : "cassini.StridePrefetcher", 34 | "debug" : "1", 35 | "L1" : "1", 36 | "cache_size" : "2KB" 37 | }) 38 | 39 | # Enable statistics outputs 40 | comp_l1cache.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 41 | 42 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 43 | comp_memory.addParams({ 44 | "coherence_protocol" : "MESI", 45 | "backend.access_time" : "1000 ns", 46 | "backend.mem_size" : "512MiB", 47 | "clock" : "1GHz", 48 | "backend" : "memHierarchy.goblinHMCSim" 49 | }) 50 | 51 | 52 | # Define the simulation links 53 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 54 | link_cpu_cache_link.connect( (comp_cpu, "cache_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 55 | link_cpu_cache_link.setNoCut() 56 | 57 | link_mem_bus_link = sst.Link("link_mem_bus_link") 58 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 59 | -------------------------------------------------------------------------------- /test/sst/7.0.0/goblinHMC1.py: -------------------------------------------------------------------------------- 1 | # Automatically generated SST Python input 2 | #-- copied from sdl-1.py 3 | import sst 4 | 5 | # Define SST core options 6 | sst.setProgramOption("timebase", "1ps") 7 | sst.setProgramOption("stopAtCycle", "0 ns") 8 | 9 | # Define the simulation components 10 | comp_cpu = sst.Component("cpu", "memHierarchy.trivialCPU") 11 | comp_cpu.addParams({ 12 | "do_write" : "1", 13 | "num_loadstore" : "1000", 14 | "commFreq" : "100", 15 | "memSize" : "0x1000" 16 | }) 17 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 18 | comp_l1cache.addParams({ 19 | "access_latency_cycles" : "4", 20 | "cache_frequency" : "2 Ghz", 21 | "replacement_policy" : "lru", 22 | "coherence_protocol" : "MSI", 23 | "associativity" : "4", 24 | "cache_line_size" : "64", 25 | #"debug" : "1", 26 | "debug_level" : "10", 27 | "L1" : "1", 28 | "LL" : "1", 29 | "cache_size" : "2 KB" 30 | }) 31 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 32 | comp_memory.addParams({ 33 | "coherence_protocol" : "MSI", 34 | "debug" : "1", 35 | "backend.access_time" : "1000 ns", 36 | "clock" : "1GHz", 37 | "backend" : "memHierarchy.goblinHMCSim", 38 | "verbose" : "1", 39 | "backend.mem_size" : "512MiB", 40 | }) 41 | 42 | # Enable statistics 43 | sst.setStatisticLoadLevel(7) 44 | sst.setStatisticOutput("sst.statOutputConsole") 45 | sst.enableAllStatisticsForComponentType("memHierarchy.Cache") 46 | sst.enableAllStatisticsForComponentType("memHierarchy.MemController") 47 | 48 | 49 | # Define the simulation links 50 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 51 | link_cpu_cache_link.connect( (comp_cpu, "mem_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 52 | link_mem_bus_link = sst.Link("link_mem_bus_link") 53 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 54 | # End of generated output. 55 | -------------------------------------------------------------------------------- /test/sst/7.0.0/goblin_singlestream1.py: -------------------------------------------------------------------------------- 1 | import sst 2 | 3 | # Define SST core options 4 | sst.setProgramOption("timebase", "1ps") 5 | sst.setProgramOption("stopAtCycle", "0 ns") 6 | 7 | # Define the simulation components 8 | comp_cpu = sst.Component("cpu", "miranda.BaseCPU") 9 | comp_cpu.addParams({ 10 | "verbose" : 0, 11 | "generator" : "miranda.SingleStreamGenerator", 12 | "generatorParams.verbose" : 0, 13 | "generatorParams.startat" : 3, 14 | "generatorParams.count" : 500000, 15 | "generatorParams.max_address" : 512000, 16 | "printStats" : 1, 17 | }) 18 | 19 | # Tell SST what statistics handling we want 20 | sst.setStatisticLoadLevel(4) 21 | 22 | # Enable statistics outputs 23 | comp_cpu.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 24 | 25 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 26 | comp_l1cache.addParams({ 27 | "access_latency_cycles" : "2", 28 | "cache_frequency" : "2 Ghz", 29 | "replacement_policy" : "lru", 30 | "coherence_protocol" : "MESI", 31 | "associativity" : "4", 32 | "cache_line_size" : "64", 33 | "prefetcher" : "cassini.StridePrefetcher", 34 | "debug" : "1", 35 | "L1" : "1", 36 | "cache_size" : "2KB" 37 | }) 38 | 39 | # Enable statistics outputs 40 | comp_l1cache.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 41 | 42 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 43 | comp_memory.addParams({ 44 | "coherence_protocol" : "MESI", 45 | "backend.access_time" : "1000 ns", 46 | "backend.mem_size" : "512MiB", 47 | "clock" : "1GHz", 48 | "backend" : "memHierarchy.goblinHMCSim" 49 | }) 50 | 51 | 52 | # Define the simulation links 53 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 54 | link_cpu_cache_link.connect( (comp_cpu, "cache_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 55 | link_cpu_cache_link.setNoCut() 56 | 57 | link_mem_bus_link = sst.Link("link_mem_bus_link") 58 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 59 | -------------------------------------------------------------------------------- /test/sst/7.1.0/goblinHMC1.py: -------------------------------------------------------------------------------- 1 | # Automatically generated SST Python input 2 | #-- copied from sdl-1.py 3 | import sst 4 | 5 | # Define SST core options 6 | sst.setProgramOption("timebase", "1ps") 7 | sst.setProgramOption("stopAtCycle", "0 ns") 8 | 9 | # Define the simulation components 10 | comp_cpu = sst.Component("cpu", "memHierarchy.trivialCPU") 11 | comp_cpu.addParams({ 12 | "do_write" : "1", 13 | "num_loadstore" : "1000", 14 | "commFreq" : "100", 15 | "memSize" : "0x1000" 16 | }) 17 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 18 | comp_l1cache.addParams({ 19 | "access_latency_cycles" : "4", 20 | "cache_frequency" : "2 Ghz", 21 | "replacement_policy" : "lru", 22 | "coherence_protocol" : "MSI", 23 | "associativity" : "4", 24 | "cache_line_size" : "64", 25 | #"debug" : "1", 26 | "debug_level" : "10", 27 | "L1" : "1", 28 | #"LL" : "1", 29 | "cache_size" : "2 KB" 30 | }) 31 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 32 | comp_memory.addParams({ 33 | "coherence_protocol" : "MSI", 34 | "debug" : "1", 35 | "backend.access_time" : "1000 ns", 36 | "clock" : "1GHz", 37 | "backend" : "memHierarchy.goblinHMCSim", 38 | "verbose" : "1", 39 | "backend.mem_size" : "512MiB", 40 | }) 41 | 42 | # Enable statistics 43 | sst.setStatisticLoadLevel(7) 44 | sst.setStatisticOutput("sst.statOutputConsole") 45 | sst.enableAllStatisticsForComponentType("memHierarchy.Cache") 46 | sst.enableAllStatisticsForComponentType("memHierarchy.MemController") 47 | 48 | 49 | # Define the simulation links 50 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 51 | link_cpu_cache_link.connect( (comp_cpu, "mem_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 52 | link_mem_bus_link = sst.Link("link_mem_bus_link") 53 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 54 | # End of generated output. 55 | -------------------------------------------------------------------------------- /test/sst/7.1.0/goblin_singlestream1.py: -------------------------------------------------------------------------------- 1 | import sst 2 | 3 | # Define SST core options 4 | sst.setProgramOption("timebase", "1ps") 5 | sst.setProgramOption("stopAtCycle", "0 ns") 6 | 7 | # Define the simulation components 8 | comp_cpu = sst.Component("cpu", "miranda.BaseCPU") 9 | comp_cpu.addParams({ 10 | "verbose" : 0, 11 | "generator" : "miranda.SingleStreamGenerator", 12 | "generatorParams.verbose" : 0, 13 | "generatorParams.startat" : 3, 14 | "generatorParams.count" : 500000, 15 | "generatorParams.max_address" : 512000, 16 | "printStats" : 1, 17 | }) 18 | 19 | # Tell SST what statistics handling we want 20 | sst.setStatisticLoadLevel(4) 21 | 22 | # Enable statistics outputs 23 | comp_cpu.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 24 | 25 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 26 | comp_l1cache.addParams({ 27 | "access_latency_cycles" : "2", 28 | "cache_frequency" : "2 Ghz", 29 | "replacement_policy" : "lru", 30 | "coherence_protocol" : "MESI", 31 | "associativity" : "4", 32 | "cache_line_size" : "64", 33 | "prefetcher" : "cassini.StridePrefetcher", 34 | "debug" : "1", 35 | "L1" : "1", 36 | "cache_size" : "2KB" 37 | }) 38 | 39 | # Enable statistics outputs 40 | comp_l1cache.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 41 | 42 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 43 | comp_memory.addParams({ 44 | "coherence_protocol" : "MESI", 45 | "backend.access_time" : "1000 ns", 46 | "backend.mem_size" : "512MiB", 47 | "clock" : "1GHz", 48 | "backend" : "memHierarchy.goblinHMCSim" 49 | }) 50 | 51 | 52 | # Define the simulation links 53 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 54 | link_cpu_cache_link.connect( (comp_cpu, "cache_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 55 | link_cpu_cache_link.setNoCut() 56 | 57 | link_mem_bus_link = sst.Link("link_mem_bus_link") 58 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 59 | -------------------------------------------------------------------------------- /test/sst/7.2.0/goblinHMC1.py: -------------------------------------------------------------------------------- 1 | # Automatically generated SST Python input 2 | #-- copied from sdl-1.py 3 | import sst 4 | 5 | # Define SST core options 6 | sst.setProgramOption("timebase", "1ps") 7 | sst.setProgramOption("stopAtCycle", "0 ns") 8 | 9 | # Define the simulation components 10 | comp_cpu = sst.Component("cpu", "memHierarchy.trivialCPU") 11 | comp_cpu.addParams({ 12 | "do_write" : "1", 13 | "num_loadstore" : "1000", 14 | "commFreq" : "100", 15 | "memSize" : "0x1000" 16 | }) 17 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 18 | comp_l1cache.addParams({ 19 | "access_latency_cycles" : "4", 20 | "cache_frequency" : "2 Ghz", 21 | "replacement_policy" : "lru", 22 | "coherence_protocol" : "MSI", 23 | "associativity" : "4", 24 | "cache_line_size" : "64", 25 | #"debug" : "1", 26 | "debug_level" : "10", 27 | "L1" : "1", 28 | #"LL" : "1", 29 | "cache_size" : "2 KB" 30 | }) 31 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 32 | comp_memory.addParams({ 33 | "coherence_protocol" : "MSI", 34 | "debug" : "1", 35 | "backend.access_time" : "1000 ns", 36 | "clock" : "1GHz", 37 | "backendConvertor" : "memHierarchy.extMemBackendConvertor", 38 | "backend" : "memHierarchy.goblinHMCSim", 39 | "verbose" : "1", 40 | "backend.mem_size" : "512MiB", 41 | }) 42 | 43 | # Enable statistics 44 | sst.setStatisticLoadLevel(7) 45 | sst.setStatisticOutput("sst.statOutputConsole") 46 | sst.enableAllStatisticsForComponentType("memHierarchy.Cache") 47 | sst.enableAllStatisticsForComponentType("memHierarchy.MemController") 48 | 49 | 50 | # Define the simulation links 51 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 52 | link_cpu_cache_link.connect( (comp_cpu, "mem_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 53 | link_mem_bus_link = sst.Link("link_mem_bus_link") 54 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 55 | # End of generated output. 56 | -------------------------------------------------------------------------------- /test/sst/7.2.0/goblin_singlestream1.py: -------------------------------------------------------------------------------- 1 | import sst 2 | 3 | # Define SST core options 4 | sst.setProgramOption("timebase", "1ps") 5 | sst.setProgramOption("stopAtCycle", "0 ns") 6 | 7 | # Define the simulation components 8 | comp_cpu = sst.Component("cpu", "miranda.BaseCPU") 9 | comp_cpu.addParams({ 10 | "verbose" : 0, 11 | "generator" : "miranda.SingleStreamGenerator", 12 | "generatorParams.verbose" : 0, 13 | "generatorParams.startat" : 3, 14 | "generatorParams.count" : 500000, 15 | "generatorParams.max_address" : 512000, 16 | "printStats" : 1, 17 | }) 18 | 19 | # Tell SST what statistics handling we want 20 | sst.setStatisticLoadLevel(4) 21 | 22 | # Enable statistics outputs 23 | comp_cpu.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 24 | 25 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 26 | comp_l1cache.addParams({ 27 | "access_latency_cycles" : "2", 28 | "cache_frequency" : "2 Ghz", 29 | "replacement_policy" : "lru", 30 | "coherence_protocol" : "MESI", 31 | "associativity" : "4", 32 | "cache_line_size" : "64", 33 | "prefetcher" : "cassini.StridePrefetcher", 34 | "debug" : "1", 35 | "L1" : "1", 36 | "cache_size" : "2KB" 37 | }) 38 | 39 | # Enable statistics outputs 40 | comp_l1cache.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 41 | 42 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 43 | comp_memory.addParams({ 44 | "coherence_protocol" : "MESI", 45 | "backend.access_time" : "1000 ns", 46 | "backend.mem_size" : "512MiB", 47 | "clock" : "1GHz", 48 | "backendConvertor" : "memHierarchy.extMemBackendConvertor", 49 | "backend" : "memHierarchy.goblinHMCSim" 50 | }) 51 | 52 | 53 | # Define the simulation links 54 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 55 | link_cpu_cache_link.connect( (comp_cpu, "cache_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 56 | link_cpu_cache_link.setNoCut() 57 | 58 | link_mem_bus_link = sst.Link("link_mem_bus_link") 59 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 60 | -------------------------------------------------------------------------------- /test/sst/LICENSE: -------------------------------------------------------------------------------- 1 | opyright 2009-2016 Sandia Corporation. Under the terms 2 | of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. 3 | Government retains certain rights in this software. 4 | 5 | Copyright (c) 2009-2016, Sandia Corporation 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use in source and binary forms, with or without 10 | modification, are permitted provided that the following conditions are 11 | met: 12 | 13 | * Redistributions of source code must retain the above copyright 14 | notice, this list of conditions and the following disclaimer. 15 | 16 | * Redistributions in binary form must reproduce the above 17 | copyright notice, this list of conditions and the following 18 | disclaimer in the documentation and/or other materials provided 19 | with the distribution. 20 | 21 | * Neither the name of Sandia Corporation nor the names of its 22 | contributors may be used to endorse or promote products derived 23 | from this software without specific prior written permission. 24 | 25 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 26 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 27 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 28 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 29 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 30 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 31 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 32 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 33 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 34 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 35 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | -------------------------------------------------------------------------------- /test/sst/README: -------------------------------------------------------------------------------- 1 | ALL THE FOLLOWING TESTS ARE DESIGNED TO BE EXECUTED USING 2 | THE SANDIA-SST SIMULATOR. THEY REQUIRE THE USE OF THE 3 | SST-ELEMENTS PACKAGE 6.0.0+. PAY SPECIAL ATTENTION TO THE 4 | INDIVIDUAL RELEASE DIRECTORIES AS EACH OF THE TEST 5 | DIRECTORIES IS TAILORED TO THE SPECIFIC SST RELEASE. 6 | 7 | GIVEN THAT THE ORIGINAL TESTS WERE DERIVED FROM 8 | EXISTING SST TESTS, WE MAINTAIN THE ORIGINAL SANDIA 9 | LICENSE TERMS. SEE 'LICENSE' FOR MORE DETAILS. 10 | 11 | -------------------------------------------------------------------------------- /test/sst/TOT/goblinHMC1.py: -------------------------------------------------------------------------------- 1 | # Automatically generated SST Python input 2 | #-- copied from sdl-1.py 3 | import sst 4 | 5 | # Define SST core options 6 | sst.setProgramOption("timebase", "1ps") 7 | sst.setProgramOption("stopAtCycle", "0 ns") 8 | 9 | # Define the simulation components 10 | comp_cpu = sst.Component("cpu", "memHierarchy.trivialCPU") 11 | comp_cpu.addParams({ 12 | "do_write" : "1", 13 | "num_loadstore" : "1000", 14 | "commFreq" : "100", 15 | "memSize" : "0x1000" 16 | }) 17 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 18 | comp_l1cache.addParams({ 19 | "access_latency_cycles" : "4", 20 | "cache_frequency" : "2 Ghz", 21 | "replacement_policy" : "lru", 22 | "coherence_protocol" : "MSI", 23 | "associativity" : "4", 24 | "cache_line_size" : "64", 25 | #"debug" : "1", 26 | "debug_level" : "10", 27 | "L1" : "1", 28 | #"LL" : "1", 29 | "cache_size" : "2 KB" 30 | }) 31 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 32 | comp_memory.addParams({ 33 | "coherence_protocol" : "MSI", 34 | "debug" : "1", 35 | "backend.access_time" : "1000 ns", 36 | "clock" : "1GHz", 37 | "backendConvertor" : "memHierarchy.extMemBackendConvertor", 38 | "backend" : "memHierarchy.goblinHMCSim", 39 | "verbose" : "1", 40 | "backend.mem_size" : "512MiB", 41 | }) 42 | 43 | # Enable statistics 44 | sst.setStatisticLoadLevel(7) 45 | sst.setStatisticOutput("sst.statOutputConsole") 46 | sst.enableAllStatisticsForComponentType("memHierarchy.Cache") 47 | sst.enableAllStatisticsForComponentType("memHierarchy.MemController") 48 | 49 | 50 | # Define the simulation links 51 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 52 | link_cpu_cache_link.connect( (comp_cpu, "mem_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 53 | link_mem_bus_link = sst.Link("link_mem_bus_link") 54 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 55 | # End of generated output. 56 | -------------------------------------------------------------------------------- /test/sst/TOT/goblin_singlestream1.py: -------------------------------------------------------------------------------- 1 | import sst 2 | 3 | # Define SST core options 4 | sst.setProgramOption("timebase", "1ps") 5 | sst.setProgramOption("stopAtCycle", "0 ns") 6 | 7 | # Define the simulation components 8 | comp_cpu = sst.Component("cpu", "miranda.BaseCPU") 9 | comp_cpu.addParams({ 10 | "verbose" : 0, 11 | "generator" : "miranda.SingleStreamGenerator", 12 | "generatorParams.verbose" : 0, 13 | "generatorParams.startat" : 3, 14 | "generatorParams.count" : 500000, 15 | "generatorParams.max_address" : 512000, 16 | "printStats" : 1, 17 | }) 18 | 19 | # Tell SST what statistics handling we want 20 | sst.setStatisticLoadLevel(4) 21 | 22 | # Enable statistics outputs 23 | comp_cpu.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 24 | 25 | comp_l1cache = sst.Component("l1cache", "memHierarchy.Cache") 26 | comp_l1cache.addParams({ 27 | "access_latency_cycles" : "2", 28 | "cache_frequency" : "2 Ghz", 29 | "replacement_policy" : "lru", 30 | "coherence_protocol" : "MESI", 31 | "associativity" : "4", 32 | "cache_line_size" : "64", 33 | "prefetcher" : "cassini.StridePrefetcher", 34 | "debug" : "1", 35 | "L1" : "1", 36 | "cache_size" : "2KB" 37 | }) 38 | 39 | # Enable statistics outputs 40 | comp_l1cache.enableAllStatistics({"type":"sst.AccumulatorStatistic"}) 41 | 42 | comp_memory = sst.Component("memory", "memHierarchy.MemController") 43 | comp_memory.addParams({ 44 | "coherence_protocol" : "MESI", 45 | "backend.access_time" : "1000 ns", 46 | "backend.mem_size" : "512MiB", 47 | "clock" : "1GHz", 48 | "backendConvertor" : "memHierarchy.extMemBackendConvertor", 49 | "backend" : "memHierarchy.goblinHMCSim" 50 | }) 51 | 52 | 53 | # Define the simulation links 54 | link_cpu_cache_link = sst.Link("link_cpu_cache_link") 55 | link_cpu_cache_link.connect( (comp_cpu, "cache_link", "1000ps"), (comp_l1cache, "high_network_0", "1000ps") ) 56 | link_cpu_cache_link.setNoCut() 57 | 58 | link_mem_bus_link = sst.Link("link_mem_bus_link") 59 | link_mem_bus_link.connect( (comp_l1cache, "low_network_0", "50ps"), (comp_memory, "direct_link", "50ps") ) 60 | -------------------------------------------------------------------------------- /test/sst_init/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: SST_INIT 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: sst_init 13 | sst_init: 14 | $(CC) $(CFLAGS) -o $@ $(SRC)/sst_init.c $(LDFLAGS) $(LDLIBS) 15 | clean: 16 | rm -Rf ./sst_init ./src/*.o 17 | -------------------------------------------------------------------------------- /test/sst_init/README: -------------------------------------------------------------------------------- 1 | HMC-SIM SST_INIT TEST 2 | ---------------------------------------- 3 | TESTS THE HMC INIT FUNCTIONS WITH THE 4 | DEFAULT VALUES IN THE SAME MANNER AS 5 | THE DEFAULT SST PATH 6 | ---------------------------------------- 7 | -------------------------------------------------------------------------------- /test/sst_init/src/sst_init.c: -------------------------------------------------------------------------------- 1 | /* 2 | * _SST_INIT_C_ 3 | * 4 | * HMCSIM SST_INIT TEST DRIVER 5 | * 6 | * Attempts to initialize a HMC instantiation 7 | * using the default SST init values 8 | * 9 | */ 10 | 11 | 12 | #include 13 | #include 14 | #include "hmc_sim.h" 15 | 16 | /* ------------------------------------------------ MAIN */ 17 | int main( int argc, char **argv ){ 18 | /* vars */ 19 | int ret = 0; 20 | uint32_t num_devs = 1; 21 | uint32_t num_links = HMC_MIN_LINKS; 22 | uint32_t num_vaults = HMC_MIN_VAULTS; 23 | uint32_t queue_depth = 32; 24 | uint32_t num_banks = HMC_MIN_BANKS; 25 | uint32_t num_drams = HMC_MIN_DRAMS; 26 | uint32_t capacity = HMC_MIN_CAPACITY; 27 | uint32_t xbar_depth = 4; 28 | struct hmcsim_t hmc; 29 | /* ---- */ 30 | 31 | ret = hmcsim_init( &hmc, 32 | num_devs, 33 | num_links, 34 | num_vaults, 35 | queue_depth, 36 | num_banks, 37 | num_drams, 38 | capacity, 39 | xbar_depth ); 40 | if( ret != 0 ){ 41 | printf( "ERROR : hmcsim_init() failed with error code : %d\n", ret ); 42 | return -1; 43 | }else{ 44 | printf( "hmcsim_init() was successful\n" ); 45 | hmcsim_free( &hmc ); 46 | } 47 | 48 | return 0; 49 | } 50 | -------------------------------------------------------------------------------- /test/stream/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: STREAM 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: stream 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/stream.o: $(SRC)/stream.c 18 | $(CC) $(CFLAGS) -c -o $@ $< 19 | stream: $(SRC)/stream.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 20 | $(CC) $(CFLAGS) -o $@ $(SRC)/stream.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 21 | clean: 22 | rm -Rf ./stream ./src/*.o 23 | -------------------------------------------------------------------------------- /test/stream/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: STREAM 2 | ------------------------------------------- 3 | Executes a Stream Triad against a target 4 | HMC-Sim configuration 5 | ------------------------------------------- 6 | 7 | I. Overview 8 | ------------------------------------------- 9 | 10 | Executes a stream triad against a target 11 | HMC-Sim configuration. The stream triad 12 | can be summarized as follows: 13 | 14 | a[i] = b[i] + scalar * c[i]; 15 | 16 | Depending upon the target host architecture, 17 | the algorithmic loop construct may be 18 | executed using SIMD, MIMD or purely scalar 19 | techniques. This test supports both the 20 | notion of SIMD, MIMD or both. The test 21 | assumes that the memory pipeline and/or MMU 22 | has the ability to support all the 23 | incoming requests from an abitrary number 24 | of threads. 25 | 26 | II. Building 27 | ------------------------------------------- 28 | 29 | In order to build the Stream Triad test, 30 | you must first build the libhmcsim.a 31 | library object. This can be done using 32 | the makefile at the top level of the 33 | HMC-Sim source directory. 34 | 35 | Once you have built the libhmcsim.a 36 | library object, you can build the 'stream' 37 | executable using the local makefile. 38 | Type 'make' to build the executable. 39 | 40 | III. Execution 41 | ------------------------------------------- 42 | 43 | Usage: 44 | ./stream -bcdhlnqvx 45 | 46 | Options: 47 | -b : number of banks in the device 48 | -c : capacity of the device 49 | -d : number of drams in the device 50 | -h : prints this help 51 | -l : number of links 52 | -m : max block size 53 | -n : number of devices 54 | -q : queue depth 55 | -s : simd width 56 | -v : number of vaults per device 57 | -x : xbar depth 58 | -N : number of requests 59 | -T : number of threads 60 | 61 | ------------------------------------------- 62 | EOF 63 | -------------------------------------------------------------------------------- /test/stream/scripts/4link_2GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream 4 | 5 | 6 | BANKS=8 7 | CAPACITY=2 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=16 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream/scripts/4link_3GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream 4 | 5 | 6 | BANKS=8 7 | CAPACITY=2 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=16 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream/scripts/4link_4GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=16 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream/scripts/8link_4GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream 4 | 5 | 6 | BANKS=8 7 | CAPACITY=4 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream/scripts/8link_8GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream 4 | 5 | 6 | BANKS=16 7 | CAPACITY=8 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream_power/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: STREAM_POWER 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: stream_power 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/stream.o: $(SRC)/stream.c 18 | $(CC) $(CFLAGS) -c -o $@ $< 19 | stream_power: $(SRC)/stream.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 20 | $(CC) $(CFLAGS) -o $@ $(SRC)/stream.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 21 | clean: 22 | rm -Rf ./stream_power ./src/*.o 23 | -------------------------------------------------------------------------------- /test/stream_power/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: STREAM_POWER 2 | ------------------------------------------- 3 | Executes a Stream Triad against a target 4 | HMC-Sim configuration 5 | ------------------------------------------- 6 | 7 | I. Overview 8 | ------------------------------------------- 9 | 10 | Executes a stream triad against a target 11 | HMC-Sim configuration. The stream triad 12 | can be summarized as follows: 13 | 14 | a[i] = b[i] + scalar * c[i]; 15 | 16 | Depending upon the target host architecture, 17 | the algorithmic loop construct may be 18 | executed using SIMD, MIMD or purely scalar 19 | techniques. This test supports both the 20 | notion of SIMD, MIMD or both. The test 21 | assumes that the memory pipeline and/or MMU 22 | has the ability to support all the 23 | incoming requests from an abitrary number 24 | of threads. 25 | 26 | II. Building 27 | ------------------------------------------- 28 | 29 | In order to build the Stream Triad test, 30 | you must first build the libhmcsim.a 31 | library object. This can be done using 32 | the makefile at the top level of the 33 | HMC-Sim source directory. 34 | 35 | Once you have built the libhmcsim.a 36 | library object, you can build the 'stream' 37 | executable using the local makefile. 38 | Type 'make' to build the executable. 39 | 40 | III. Execution 41 | ------------------------------------------- 42 | 43 | Usage: 44 | ./stream_power -bcdhlnqvx 45 | 46 | Options: 47 | -b : number of banks in the device 48 | -c : capacity of the device 49 | -d : number of drams in the device 50 | -h : prints this help 51 | -l : number of links 52 | -m : max block size 53 | -n : number of devices 54 | -q : queue depth 55 | -s : simd width 56 | -v : number of vaults per device 57 | -x : xbar depth 58 | -N : number of requests 59 | -T : number of threads 60 | 61 | ------------------------------------------- 62 | EOF 63 | -------------------------------------------------------------------------------- /test/stream_power/scripts/4link_4GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream_power/scripts/8link_8GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=8 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=64 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream_power/scripts/simple.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | #NRQSTS=33554432 15 | NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream_power_config/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: STREAM_POWER 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: stream_power 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/stream.o: $(SRC)/stream.c 18 | $(CC) $(CFLAGS) -c -o $@ $< 19 | stream_power: $(SRC)/stream.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 20 | $(CC) $(CFLAGS) -o $@ $(SRC)/stream.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 21 | clean: 22 | rm -Rf ./stream_power ./src/*.o 23 | -------------------------------------------------------------------------------- /test/stream_power_config/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: STREAM_POWER 2 | ------------------------------------------- 3 | Executes a Stream Triad against a target 4 | HMC-Sim configuration 5 | ------------------------------------------- 6 | 7 | I. Overview 8 | ------------------------------------------- 9 | 10 | Executes a stream triad against a target 11 | HMC-Sim configuration. The stream triad 12 | can be summarized as follows: 13 | 14 | a[i] = b[i] + scalar * c[i]; 15 | 16 | Depending upon the target host architecture, 17 | the algorithmic loop construct may be 18 | executed using SIMD, MIMD or purely scalar 19 | techniques. This test supports both the 20 | notion of SIMD, MIMD or both. The test 21 | assumes that the memory pipeline and/or MMU 22 | has the ability to support all the 23 | incoming requests from an abitrary number 24 | of threads. 25 | 26 | II. Building 27 | ------------------------------------------- 28 | 29 | In order to build the Stream Triad test, 30 | you must first build the libhmcsim.a 31 | library object. This can be done using 32 | the makefile at the top level of the 33 | HMC-Sim source directory. 34 | 35 | Once you have built the libhmcsim.a 36 | library object, you can build the 'stream' 37 | executable using the local makefile. 38 | Type 'make' to build the executable. 39 | 40 | III. Execution 41 | ------------------------------------------- 42 | 43 | Usage: 44 | ./stream_power -bcdhlnqvx 45 | 46 | Options: 47 | -b : number of banks in the device 48 | -c : capacity of the device 49 | -d : number of drams in the device 50 | -h : prints this help 51 | -l : number of links 52 | -m : max block size 53 | -n : number of devices 54 | -q : queue depth 55 | -s : simd width 56 | -v : number of vaults per device 57 | -x : xbar depth 58 | -N : number of requests 59 | -T : number of threads 60 | 61 | ------------------------------------------- 62 | EOF 63 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/4link_4GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/8link_8GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=8 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=64 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/config.sample: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/config.sample.4: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/config.sample.8: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/runsimple.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "...executing 4link stream_power_config test" 4 | ./simple4.sh 5 | echo "...executing 8link stream_power_config test" 6 | ./simple8.sh 7 | 8 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/simple.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | #NRQSTS=33554432 15 | NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | CFILE=./config.sample 20 | 21 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE" 23 | 24 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 25 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE 26 | 27 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/simple4.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | #NRQSTS=33554432 15 | NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | CFILE=./config.sample.4 20 | 21 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE" 23 | 24 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 25 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE 26 | 27 | -------------------------------------------------------------------------------- /test/stream_power_config/scripts/simple8.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=8 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=64 13 | #NRQSTS=134217728 14 | #NRQSTS=33554432 15 | NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | CFILE=./config.sample.8 20 | 21 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE" 23 | 24 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 25 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE 26 | 27 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TEST APPLICATIONS 4 | # 5 | # TEST: STREAM_POWER_TECPLOT 6 | # --------------------------------------- 7 | 8 | include ../Makefile.inc 9 | 10 | SRC=./src 11 | 12 | all: stream_power 13 | $(SRC)/execute_test.o: $(SRC)/execute_test.c 14 | $(CC) $(CFLAGS) -c -o $@ $< 15 | $(SRC)/shiftamt.o: $(SRC)/shiftamt.c 16 | $(CC) $(CFLAGS) -c -o $@ $< 17 | $(SRC)/stream.o: $(SRC)/stream.c 18 | $(CC) $(CFLAGS) -c -o $@ $< 19 | stream_power: $(SRC)/stream.o $(SRC)/shiftamt.o $(SRC)/execute_test.o 20 | $(CC) $(CFLAGS) -o $@ $(SRC)/stream.o $(SRC)/shiftamt.o $(SRC)/execute_test.o $(LDFLAGS) $(LDLIBS) 21 | clean: 22 | rm -Rf ./stream_power ./src/*.o 23 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/README: -------------------------------------------------------------------------------- 1 | HMCSIM TEST: STREAM_POWER_TECPLOT 2 | ------------------------------------------- 3 | Executes a Stream Triad against a target 4 | HMC-Sim configuration 5 | ------------------------------------------- 6 | 7 | I. Overview 8 | ------------------------------------------- 9 | 10 | Executes a stream triad against a target 11 | HMC-Sim configuration. The stream triad 12 | can be summarized as follows: 13 | 14 | a[i] = b[i] + scalar * c[i]; 15 | 16 | Depending upon the target host architecture, 17 | the algorithmic loop construct may be 18 | executed using SIMD, MIMD or purely scalar 19 | techniques. This test supports both the 20 | notion of SIMD, MIMD or both. The test 21 | assumes that the memory pipeline and/or MMU 22 | has the ability to support all the 23 | incoming requests from an abitrary number 24 | of threads. 25 | 26 | II. Building 27 | ------------------------------------------- 28 | 29 | In order to build the Stream Triad test, 30 | you must first build the libhmcsim.a 31 | library object. This can be done using 32 | the makefile at the top level of the 33 | HMC-Sim source directory. 34 | 35 | Once you have built the libhmcsim.a 36 | library object, you can build the 'stream' 37 | executable using the local makefile. 38 | Type 'make' to build the executable. 39 | 40 | III. Execution 41 | ------------------------------------------- 42 | 43 | Usage: 44 | ./stream_power -bcdhlnqvx 45 | 46 | Options: 47 | -C : sets the power config file 48 | -b : number of banks in the device 49 | -c : capacity of the device 50 | -d : number of drams in the device 51 | -h : prints this help 52 | -l : number of links 53 | -m : max block size 54 | -n : number of devices 55 | -q : queue depth 56 | -s : simd width 57 | -v : number of vaults per device 58 | -x : xbar depth 59 | -N : number of requests 60 | -T : number of threads 61 | 62 | ------------------------------------------- 63 | EOF 64 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/4link_4GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/8link_8GB_stream.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=8 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=64 13 | #NRQSTS=134217728 14 | NRQSTS=33554432 15 | #NRQSTS=4096 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | 20 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 21 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD" 22 | 23 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 24 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD 25 | 26 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/config.sample: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | 24 | TECPLOT_OUTPUT = 1 25 | 26 | TECPLOT_PREFIX = STREAM 27 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/config.sample.4: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | 24 | TECPLOT_OUTPUT = 1 25 | 26 | TECPLOT_PREFIX = STREAM4 27 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/config.sample.8: -------------------------------------------------------------------------------- 1 | # config.sample 2 | # configuration file to setup power measurement values 3 | 4 | LINK_PHY_POWER = 10 5 | 6 | LINK_LOCAL_ROUTE_POWER = 20 7 | 8 | LINK_REMOTE_ROUTE_POWER = 30 9 | 10 | XBAR_RQST_SLOT_POWER = 2 11 | 12 | XBAR_RSP_SLOT_POWER = 2.5 13 | 14 | XBAR_ROUTE_EXTERN_POWER = 35 15 | 16 | VAULT_RQST_SLOT_POWER = 27 17 | 18 | VAULT_RSP_SLOT_POWER = 21 19 | 20 | VAULT_CTRL_POWER = 5 21 | 22 | ROW_ACCESS_POWER = 17 23 | 24 | TECPLOT_OUTPUT = 1 25 | 26 | TECPLOT_PREFIX = STREAM8 27 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/runsimple.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "...executing stream_power_tecplot 4link test" 4 | ./simple4.sh 5 | 6 | echo "...executing stream_power_tecplot 8link test" 7 | ./simple8.sh 8 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/simple.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | #NRQSTS=33554432 15 | NRQSTS=256 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | CFILE=./config.sample 20 | 21 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE" 23 | 24 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 25 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE 26 | 27 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/simple4.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=4 8 | LINKS=4 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=32 13 | #NRQSTS=134217728 14 | #NRQSTS=33554432 15 | NRQSTS=256 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | CFILE=./config.sample.4 20 | 21 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE" 23 | 24 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 25 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE 26 | 27 | -------------------------------------------------------------------------------- /test/stream_power_tecplot/scripts/simple8.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | STREAM=../stream_power 4 | 5 | 6 | BANKS=16 7 | CAPACITY=8 8 | LINKS=8 9 | BSIZE=64 10 | QDEPTH=64 11 | XDEPTH=128 12 | VAULTS=64 13 | #NRQSTS=134217728 14 | #NRQSTS=33554432 15 | NRQSTS=256 16 | DRAMS=20 17 | THREADS=16 18 | SIMD=8 19 | CFILE=./config.sample.8 20 | 21 | echo "Executing : $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 22 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE" 23 | 24 | $STREAM -b $BANKS -c $CAPACITY -l $LINKS -m $BSIZE -n 1 -q $QDEPTH -x $XDEPTH\ 25 | -d $DRAMS -v $VAULTS -N $NRQSTS -T $THREADS -s $SIMD -C $CFILE 26 | 27 | -------------------------------------------------------------------------------- /tools/Makefile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # HMCSIM TOOLS 4 | # 5 | # --------------------------------------- 6 | 7 | include ./Makefile.inc 8 | 9 | SRC=./src 10 | 11 | all: hmctognuplot 12 | hmctognuplot: 13 | @echo " Building hmctognuplot"; $(CC) $(CFLAGS) -o $@ $(SRC)/hmctognuplot.c $(LDFLAGS) $(LDLIBS) 14 | clean: 15 | rm -Rf ./hmctognuplot ./src/*.o 16 | -------------------------------------------------------------------------------- /tools/Makefile.inc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | HMCTOOLS_MACROS= 5 | 6 | #-- CC 7 | #-- C COMPILER 8 | CC=gcc 9 | 10 | #-- CXX 11 | #-- C++ COMPILER 12 | CXX=g++ 13 | 14 | #-- INC 15 | #-- INCLUDE DIRECTORIES 16 | INC=-I./include/ 17 | 18 | #-- CFLAGS 19 | #-- C COMPILER FLAGS 20 | CFLAGS=-O2 -Wall -g $(INC) $(HMCTOOLS_MACROS) 21 | 22 | #-- CXXFLAGS 23 | #-- C++ COMPILER FLAGS 24 | CXXFLAGS=-O2 -Wall -g $(INC) $(HMCTOOLS_MACROS) 25 | 26 | #-- AR 27 | #-- ARCHIVE BINARY 28 | AR=ar 29 | 30 | #-- AR_OPTS 31 | #-- ARCHIVE OPTIONS 32 | AR_OPTS=rcs 33 | 34 | #-- DOXYGEN 35 | #-- DOXYGEN BINARY 36 | DOXYGEN=`which doxygen` 37 | 38 | #-- EOF 39 | -------------------------------------------------------------------------------- /viz/README: -------------------------------------------------------------------------------- 1 | --------------------------------- 2 | GC64-HMCSIM VISUALIZATION TOOLS 3 | --------------------------------- 4 | --------------------------------- 5 | EOF 6 | --------------------------------------------------------------------------------