summaryrefslogtreecommitdiff
path: root/diff.diff
diff options
context:
space:
mode:
Diffstat (limited to 'diff.diff')
-rw-r--r--diff.diff173
1 files changed, 0 insertions, 173 deletions
diff --git a/diff.diff b/diff.diff
deleted file mode 100644
index 8ab27fe..0000000
--- a/diff.diff
+++ /dev/null
@@ -1,173 +0,0 @@
-diff --git a/libcuda/cuda_runtime_api.cc b/libcuda/cuda_runtime_api.cc
-index 5964a4d..53436d3 100644
---- a/libcuda/cuda_runtime_api.cc
-+++ b/libcuda/cuda_runtime_api.cc
-@@ -182,6 +182,8 @@ cudaError_t g_last_cudaError = cudaSuccess;
-
- extern stream_manager *g_stream_manager;
-
-+
-+
- void register_ptx_function( const char *name, function_info *impl )
- {
- // no longer need this
-@@ -1341,6 +1343,29 @@ std::string get_app_binary(){
- return self_exe_path;
- }
-
-+static int get_app_cuda_version() {
-+ int app_cuda_version = 0;
-+ char fname[1024];
-+ snprintf(fname,1024,"_app_cuda_version_XXXXXX");
-+ int fd=mkstemp(fname);
-+ close(fd);
-+ std::string app_cuda_version_command = "ldd " + get_app_binary() + " | grep libcudart.so | sed 's/.*libcudart.so.\\(.*\\) =>.*/\\1/' > " + fname;
-+ system(app_cuda_version_command.c_str());
-+ FILE * cmd = fopen(fname, "r");
-+ char buf[256];
-+ while (fgets(buf, sizeof(buf), cmd) != 0) {
-+ std::cout << buf;
-+ app_cuda_version = atoi(buf);
-+ }
-+ fclose(cmd);
-+ if ( app_cuda_version == 0 ) {
-+ printf( "Error - Cannot detect the app's CUDA version.\n" );
-+ exit(1);
-+ }
-+ return app_cuda_version;
-+}
-+
-+
- //! Call cuobjdump to extract everything (-elf -sass -ptx)
- /*!
- * This Function extract the whole PTX (for all the files) using cuobjdump
-@@ -1366,23 +1391,10 @@ void extract_code_using_cuobjdump(){
- // Running cuobjdump using dynamic link to current process
- // Needs the option '-all' to extract PTX from CDP-enabled binary
- extern bool g_cdp_enabled;
-- const int current_cuda = atoi(getenv("CUDA_VERSION_NUMBER"));
-- if ( context->get_device()->get_gpgpu()->get_config().convert_to_ptxplus() && current_cuda > 4020 ) {
-- const char* cuda_42_path = getenv("CUDA_42_INSTALL_PATH");
-- if ( NULL == cuda_42_path ) {
-- printf("You are using a new version of CUDA and PTXPLUS. You are required to have CUDA SDK 4.2 and explicitly "
-- "point to it via the environment variable $CUDA_42_INSTALL_PATH.\n\n");
-- exit(1);
-- } else {
-- command = "$CUDA_42_INSTALL_PATH/bin/cuobjdump";
-- }
-- } else {
-- command = "$CUDA_42_INSTALL_PATH/bin/cuobjdump";
-- }
- if(!g_cdp_enabled)
-- command += " -ptx -elf -sass " + app_binary + " > " + fname;
-+ command = "$CUDA_INSTALL_PATH/bin/cuobjdump -ptx -elf -sass " + app_binary + " > " + fname;
- else
-- command += " -ptx -elf -sass -all " + app_binary + " > " + fname;
-+ command = "$CUDA_INSTALL_PATH/bin/cuobjdump -ptx -elf -sass -all " + app_binary + " > " + fname;
- bool parse_output = true;
- int result = system(command.c_str());
- if(result) {
-@@ -1765,6 +1777,7 @@ void cuobjdumpParseBinary(unsigned int handle){
- //TODO: Remove temporarily files as per configurations
- }
-
-+
- void** CUDARTAPI __cudaRegisterFatBinary( void *fatCubin )
- {
- #if (CUDART_VERSION < 2010)
-@@ -1783,26 +1796,10 @@ void** CUDARTAPI __cudaRegisterFatBinary( void *fatCubin )
- // Making this a runtime variable based on the app, enables GPGPU-Sim compiled
- // with a newer version of CUDA to run apps compiled with older versions of
- // CUDA. This is especially useful for PTXPLUS execution.
-- char fname[1024];
-- snprintf(fname,1024,"_app_cuda_version_XXXXXX");
-- int fd=mkstemp(fname);
-- close(fd);
-- int app_cuda_version = 0;
-- std::string app_cuda_version_command = "ldd " + get_app_binary() + " | grep libcudart.so | sed 's/.*libcudart.so.\\(.*\\) =>.*/\\1/' > " + fname;
-- system(app_cuda_version_command.c_str());
-- FILE * cmd = fopen(fname, "r");
-- char buf[256];
-- while (fgets(buf, sizeof(buf), cmd) != 0) {
-- std::cout << buf;
-- app_cuda_version = atoi(buf);
-- }
-- fclose(cmd);
-- if ( app_cuda_version == 0 ) {
-- printf( "Error - Cannot detect the app's CUDA version.\n" );
-- exit(1);
-- }
-+ int app_cuda_version = get_app_cuda_version();
-+ assert( app_cuda_version == CUDART_VERSION / 1000 && "The app must be compiled with same major version as the simulator." );
- const char* filename;
-- if ( app_cuda_version < 6 ) {
-+#if CUDART_VERSION < 6000
- // FatBin handle from the .fatbin.c file (one of the intermediate files generated by NVCC)
- typedef struct {int m; int v; const unsigned long long* d; char* f;} __fatDeviceText __attribute__ ((aligned (8)));
- __fatDeviceText * fatDeviceText = (__fatDeviceText *) fatCubin;
-@@ -1814,9 +1811,9 @@ void** CUDARTAPI __cudaRegisterFatBinary( void *fatCubin )
- char * pfatbin = (char*) fatDeviceText->d;
- int offset = *((int*)(pfatbin+48));
- filename = (pfatbin+16+offset);
-- } else {
-+#else
- filename = "default";
-- }
-+#endif
-
- // The extracted file name is associated with a fat_cubin_handle passed
- // into cudaLaunch(). Inside cudaLaunch(), the associated file name is
-diff --git a/setup_environment b/setup_environment
-index 8bcb9aa..e5cd4fa 100644
---- a/setup_environment
-+++ b/setup_environment
-@@ -134,18 +134,26 @@ else
- echo "configured without a power model.";
- fi
-
-+export PTXAS_CUDA_INSTALL_PATH=$CUDA_INSTALL_PATH
-+echo "";
-+echo "----------------------------------------------------------------------------";
-+echo "WARNING - If you only care about PTX execution, ignore this warning. GPGPU-Sim supports PTX execution in modern CUDA."
- if [ $CUDA_VERSION_NUMBER -gt 4200 ]; then
-- echo "";
-- echo "----------------------------------------------------------------------------";
-- echo "WARNING - If you only care about PTX execution, ignore this warning. GPGPU-Sim supports PTX execution in modern CUDA."
-- echo "If you want to run PTXPLUS, download SDK 4.2 (in addition to your modern CUDA) and set \$CUDA_42_INSTALL_PATH."
-- echo "The following text describes why:";
-- echo "If you are using PTXPLUS, only sm_1x is supported and it requires that the app binaries are compiled in CUDA 4.2 or less.";
-- echo "New versions of CUDA tools have dropped parsing support for sm_1x - therefore to use PTXPLUS with a modern card configuration, you must";
-- echo "have both CUDA 4.2 and a modern CUDA installed. When running PTXPLUS under a CUDA version >= 4.2, the simulator will fail unless \$CUDA_42_INSTALL_PATH";
-- echo "has been set properly. You must set this manually.";
-- echo "----------------------------------------------------------------------------"
-+ echo "If you want to run PTXPLUS (sm_1x SASS) with a modern card configuration, the apps and simulator must be compiled with CUDA 4.2."
-+ echo "You can still run a PASCAL configuration when compiling with 4.2 by setting the \$PTXAS_CUDA_INSTALL_PATH directory environment variable."
-+else
-+ echo "If you want to run PTXPLUS (sm_1x SASS) with a modern card configuration - set the envronment variable"
-+ echo "\$PTXAS_CUDA_INSTALL_PATH to point a CUDA version compabible with your card configurations (i.e. 8+ for PASCAL, 9+ for VOLTA etc..)"
-+ echo "For example: \"export \$PTXAS_CUDA_INSTALL_PATH=/usr/local/cuda-9.1\""
- fi
-+echo "The following text describes why:";
-+echo "If you are using PTXPLUS, only sm_1x is supported and it requires that the app and simulator binaries are compiled in CUDA 4.2 or less.";
-+echo "The simulator requires it since CUDA headers desribe struct sizes in the exec which change from gen to gen.";
-+echo "The apps require 4.2 because new versions of CUDA tools have dropped parsing support for generating sm_1x";
-+echo "When running using modern config (i.e. pascal) and PTXPLUS with CUDA 4.2, the \$PTXAS_CUDA_INSTALL_PATH env variable is required to get proper register usage"
-+echo "(and hence occupancy) using a version of CUDA that knows the register usage on the real card."
-+echo "";
-+echo "----------------------------------------------------------------------------";
-
- echo "setup_environment succeeded";
-
-diff --git a/src/cuda-sim/ptx_loader.cc b/src/cuda-sim/ptx_loader.cc
-index 22f03b9..d8e04d4 100644
---- a/src/cuda-sim/ptx_loader.cc
-+++ b/src/cuda-sim/ptx_loader.cc
-@@ -339,7 +339,7 @@ void gpgpu_ptxinfo_load_from_string( const char *p_for_info, unsigned source_num
- snprintf(extra_flags,1024,"--compile-only --gpu-name=sm_%u",g_occupancy_sm_number);
- #endif
-
-- snprintf(commandline,1024,"$CUDA_INSTALL_PATH/bin/ptxas %s -v %s --output-file /dev/null 2> %s",
-+ snprintf(commandline,1024,"$PTXAS_CUDA_INSTALL_PATH/bin/ptxas %s -v %s --output-file /dev/null 2> %s",
- extra_flags, fname2, tempfile_ptxinfo);
- printf("GPGPU-Sim PTX: generating ptxinfo using \"%s\"\n", commandline);
- result = system(commandline);