diff options
| -rw-r--r-- | Makefile | 9 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/Makefile | 2 | ||||
| -rw-r--r-- | src/cuda-sim/ptx.y | 1 | ||||
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 9 |
4 files changed, 12 insertions, 9 deletions
@@ -239,3 +239,12 @@ clean: makedirs cleangpgpusim: cleandocs rm -rf $(SIM_LIB_DIR) rm -rf $(SIM_OBJ_FILES_DIR) + rm -f *~ *.o ./src/cuda-sim/*.gcda ./src/cuda-sim/*.gcno ./src/cuda-sim/*.gcov ./src/cuda-sim/libgpgpu_ptx_sim.a \ + ./src/cuda-sim/ptx.tab.h ./src/cuda-sim/ptx.tab.c ./src/cuda-sim/ptx.output ./src/cuda-sim/lex.ptx_.c \ + ./src/cuda-sim/ptxinfo.tab.h ./src/cuda-sim/ptxinfo.tab.c ./src/cuda-sim/ptxinfo.output ./src/cuda-sim/lex.ptxinfo_.c \ + ./src/cuda-sim/instructions.h ./src/cuda-sim/ptx_parser_decode.def ./src/cuda-sim/directed_tests.log \ + ./cuobjdump_to_ptxplus/elf_lexer.cc ./cuobjdump_to_ptxplus/elf_parser.cc ./cuobjdump_to_ptxplus/elf_parser.hh \ + ./cuobjdump_to_ptxplus/header_lexer.cc ./cuobjdump_to_ptxplus/header_parser.cc ./cuobjdump_to_ptxplus/header_parser.hh \ + ./cuobjdump_to_ptxplus/lex.ptx_.c ./cuobjdump_to_ptxplus/ptx.output ./cuobjdump_to_ptxplus/ptx.tab.h cuobjdump_to_ptxplus/ptx.tab.h \ + ./cuobjdump_to_ptxplus/sass_lexer.cc ./cuobjdump_to_ptxplus/sass_parser.cc ./cuobjdump_to_ptxplus/sass_parser.hh + diff --git a/cuobjdump_to_ptxplus/Makefile b/cuobjdump_to_ptxplus/Makefile index 40b8b48..0358970 100644 --- a/cuobjdump_to_ptxplus/Makefile +++ b/cuobjdump_to_ptxplus/Makefile @@ -9,7 +9,7 @@ LD = g++ LDFLAGS = ${CCFLAGS} OUTPUT_DIR=$(SIM_OBJ_FILES_DIR)/cuobjdump_to_ptxplus -CXXFLAGS += -I $(OUTPUT_DIR) -I . -I ../src/cuda-sim/ +CXXFLAGS += -I $(OUTPUT_DIR) -I $(OUTPUT_DIR)/../cuda-sim/ -I . -I ../src/cuda-sim/ SASS_PARSER_OBJECTS = $(OUTPUT_DIR)/sass_lexer.o $(OUTPUT_DIR)/sass_parser.o ELF_PARSER_OBJECTS = $(OUTPUT_DIR)/elf_lexer.o $(OUTPUT_DIR)/elf_parser.o diff --git a/src/cuda-sim/ptx.y b/src/cuda-sim/ptx.y index e5942f0..770ee1d 100644 --- a/src/cuda-sim/ptx.y +++ b/src/cuda-sim/ptx.y @@ -446,6 +446,7 @@ option: type_spec ; atomic_operation_spec: ATOMIC_AND { add_option(ATOMIC_AND); } + | ATOMIC_POPC { add_option(ATOMIC_POPC); } | ATOMIC_OR { add_option(ATOMIC_OR); } | ATOMIC_XOR { add_option(ATOMIC_XOR); } | ATOMIC_CAS { add_option(ATOMIC_CAS); } diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index 2fddadd..b761dac 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -21,7 +21,7 @@ // 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 +// SERVICES; LOSSp 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. @@ -2606,7 +2606,6 @@ void barrier_set_t::deallocate_barrier( unsigned cta_id ) void barrier_set_t::warp_reaches_barrier(unsigned cta_id,unsigned warp_id,warp_inst_t* inst) { barrier_type bar_type = inst->bar_type; - reduction_type red_type = inst->red_type; unsigned bar_id = inst->bar_id; unsigned bar_count = inst->bar_count; assert(bar_id!=(unsigned)-1); @@ -2628,15 +2627,12 @@ void barrier_set_t::warp_reaches_barrier(unsigned cta_id,unsigned warp_id,warp_i warp_set_t active = warps_in_cta & m_warp_active; if(bar_count==(unsigned)-1){ if( at_barrier == active ) { - printf("Barrier should be released\n"); // all warps have reached barrier, so release waiting warps... m_bar_id_to_warps[bar_id] &= ~at_barrier; m_warp_at_barrier &= ~at_barrier; if(bar_type==RED){ - printf("broadcast_barrier\n"); m_shader->broadcast_barrier_reduction(cta_id, bar_id,at_barrier); } - printf("warps at barrier = %u\n",m_warp_at_barrier.count()); } }else{ // TODO: check on the hardware if the count should include warp that exited @@ -2645,7 +2641,6 @@ void barrier_set_t::warp_reaches_barrier(unsigned cta_id,unsigned warp_id,warp_i m_bar_id_to_warps[bar_id] &= ~at_barrier; m_warp_at_barrier &= ~at_barrier; if(bar_type==RED){ - printf("REDUCTION CALLED-2\n"); m_shader->broadcast_barrier_reduction(cta_id, bar_id,at_barrier); } } @@ -2775,10 +2770,8 @@ void shader_core_ctx::decrement_atomic_count( unsigned wid, unsigned n ) void shader_core_ctx::broadcast_barrier_reduction(unsigned cta_id,unsigned bar_id,warp_set_t warps) { - unsigned value = get_reduction_value(cta_id,bar_id); for(unsigned i=0; i<m_config->max_warps_per_shader;i++){ if(warps.test(i)){ - printf("braodcast for i=%u\n",i); const warp_inst_t * inst = m_warp[i].restore_info_of_last_inst_at_barrier(); const_cast<warp_inst_t *> (inst)->broadcast_barrier_reduction(inst->get_active_mask()); } |
