diff options
Diffstat (limited to 'src/cuda-sim')
| -rw-r--r-- | src/cuda-sim/cuda-sim.cc | 2 | ||||
| -rw-r--r-- | src/cuda-sim/cuda-sim.h | 55 | ||||
| -rw-r--r-- | src/cuda-sim/ptx_sim.cc | 6 |
3 files changed, 54 insertions, 9 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc index 737b94a..a55fb79 100644 --- a/src/cuda-sim/cuda-sim.cc +++ b/src/cuda-sim/cuda-sim.cc @@ -79,6 +79,7 @@ #include "ptx-stats.h" #include "ptx_loader.h" #include "ptx_parser.h" +#include "../gpgpu-sim/gpu-sim.h" extern bool g_interactive_debugger_enabled; @@ -759,7 +760,6 @@ unsigned datatype2size( unsigned data_type ) return data_size; } -extern unsigned long long gpu_sim_cycle; unsigned g_warp_active_mask; void function_info::ptx_exec_inst( ptx_thread_info *thread, diff --git a/src/cuda-sim/cuda-sim.h b/src/cuda-sim/cuda-sim.h index 2c5e0a7..7e05f7e 100644 --- a/src/cuda-sim/cuda-sim.h +++ b/src/cuda-sim/cuda-sim.h @@ -2,6 +2,7 @@ #define CUDASIM_H_INCLUDED #include "../abstract_hardware_model.h" +#include "dram_callback.h" #include <stdlib.h> #include <map> #include <string> @@ -17,10 +18,16 @@ extern int g_debug_execution; extern int g_debug_thread_uid; extern std::map<std::string,function_info*> *g_kernel_name_to_function_lookup; -extern void gpgpu_cuda_ptx_sim_init_grid(const char *kernel_key,struct gpgpu_ptx_sim_arg *args, struct dim3 gridDim, struct dim3 blockDim ); -extern void gpgpu_opencl_ptx_sim_init_grid(class function_info *entry,struct gpgpu_ptx_sim_arg *args, struct dim3 gridDim, struct dim3 blockDim ); +extern void gpgpu_cuda_ptx_sim_init_grid( const char *kernel_key, + struct gpgpu_ptx_sim_arg *args, + struct dim3 gridDim, + struct dim3 blockDim ); +extern void gpgpu_opencl_ptx_sim_init_grid(class function_info *entry, + struct gpgpu_ptx_sim_arg *args, + struct dim3 gridDim, + struct dim3 blockDim ); extern void gpgpu_cuda_ptx_sim_main_func( const char *kernel_key, dim3 gridDim, dim3 blockDim, struct gpgpu_ptx_sim_arg *); -extern void print_splash(); +extern void print_splash(); extern void* gpgpu_ptx_sim_malloc( size_t count ); extern void* gpgpu_ptx_sim_mallocarray( size_t count ); extern void gpgpu_ptx_sim_memcpy_to_gpu( size_t dst_start_addr, const void *src, size_t count ); @@ -43,5 +50,47 @@ extern void read_sim_environment_variables(); extern void register_function_implementation( const char *name, function_info *impl ); extern void ptxinfo_cuda_addinfo(); extern void ptxinfo_opencl_addinfo( std::map<std::string,function_info*> &kernels ); +extern void ptx_sim_free_sm( class ptx_thread_info** thread_info ); +unsigned ptx_sim_init_thread( class ptx_thread_info** thread_info, + int sid, + unsigned tid, + unsigned threads_left, + unsigned num_threads, + class core_t *core, + unsigned hw_cta_id, + unsigned hw_warp_id ); +unsigned ptx_sim_cta_size(); +const struct gpgpu_ptx_sim_kernel_info* ptx_sim_kernel_info(); +void set_option_gpgpu_spread_blocks_across_cores(int option); +int ptx_thread_done( void *thd ); +unsigned ptx_thread_donecycle( void *thr ); +int ptx_thread_get_next_pc( void *thd ); +void* ptx_thread_get_next_finfo( void *thd ); +int ptx_thread_at_barrier( void *thd ); +int ptx_thread_all_at_barrier( void *thd ); +unsigned long long ptx_thread_get_cta_uid( void *thd ); +void ptx_thread_reset_barrier( void *thd ); +void ptx_thread_release_barrier( void *thd ); +void ptx_print_insn( address_type pc, FILE *fp ); +unsigned int ptx_set_tex_cache_linesize( unsigned linesize); +void ptx_decode_inst( void *thd, + unsigned *op, + int *i1, + int *i2, + int *i3, + int *i4, + int *o1, + int *o2, + int *o3, + int *o4, + int *vectorin, + int *vectorout, + int *arch_reg ); +void ptx_exec_inst( void *thd, + address_type *addr, + memory_space_t *space, + unsigned *data_size, + dram_callback_t* callback, + unsigned warp_active_mask ); #endif diff --git a/src/cuda-sim/ptx_sim.cc b/src/cuda-sim/ptx_sim.cc index 31c8c81..2156bd6 100644 --- a/src/cuda-sim/ptx_sim.cc +++ b/src/cuda-sim/ptx_sim.cc @@ -64,6 +64,7 @@ #include "ptx_sim.h" #include <string> #include "ptx_ir.h" +#include "../gpgpu-sim/gpu-sim.h" void feature_not_implemented( const char *f ); @@ -249,8 +250,6 @@ const ptx_version &ptx_thread_info::get_ptx_version() const return m_func_info->get_ptx_version(); } -extern unsigned long long gpu_sim_cycle; - void ptx_thread_info::set_done() { assert( !m_at_barrier ); @@ -258,9 +257,6 @@ void ptx_thread_info::set_done() m_cycle_done = gpu_sim_cycle; } -extern unsigned long long gpu_sim_cycle; -extern signed long long gpu_tot_sim_cycle; - unsigned ptx_thread_info::get_builtin( int builtin_id, unsigned dim_mod ) { assert( m_valid ); |
