@@ -33,6 +33,7 @@ using namespace GPUCA_NAMESPACE::gpu;
3333#include " utils/qGetLdBinarySymbols.h"
3434QGET_LD_BINARY_SYMBOLS (GPUReconstructionCUDArtc_src);
3535QGET_LD_BINARY_SYMBOLS (GPUReconstructionCUDArtc_command);
36+ QGET_LD_BINARY_SYMBOLS (GPUReconstructionCUDArtc_command_arch);
3637#endif
3738
3839int GPUReconstructionCUDA::genRTC (std::string& filename, unsigned int & nCompile)
@@ -53,12 +54,16 @@ int GPUReconstructionCUDA::genRTC(std::string& filename, unsigned int& nCompile)
5354 kernelsall += kernels[i] + " \n " ;
5455 }
5556
57+ std::string baseCommand = (mProcessingSettings .RTCprependCommand != " " ? (mProcessingSettings .RTCprependCommand + " " ) : " " );
58+ baseCommand += (getenv (" O2_GPU_RTC_OVERRIDE_CMD" ) ? std::string (getenv (" O2_GPU_RTC_OVERRIDE_CMD" )) : std::string (_binary_GPUReconstructionCUDArtc_command_start, _binary_GPUReconstructionCUDArtc_command_len));
59+ baseCommand += std::string (" " ) + (mProcessingSettings .RTCoverrideArchitecture != " " ? mProcessingSettings .RTCoverrideArchitecture : std::string (_binary_GPUReconstructionCUDArtc_command_arch_start, _binary_GPUReconstructionCUDArtc_command_arch_len));
60+
5661#ifdef GPUCA_HAVE_O2HEADERS
5762 char shasource[21 ], shaparam[21 ], shacmd[21 ], shakernels[21 ];
5863 if (mProcessingSettings .rtc .cacheOutput ) {
5964 o2::framework::internal::SHA1 (shasource, _binary_GPUReconstructionCUDArtc_src_start, _binary_GPUReconstructionCUDArtc_src_len);
6065 o2::framework::internal::SHA1 (shaparam, rtcparam.c_str (), rtcparam.size ());
61- o2::framework::internal::SHA1 (shacmd, _binary_GPUReconstructionCUDArtc_command_start, _binary_GPUReconstructionCUDArtc_command_len );
66+ o2::framework::internal::SHA1 (shacmd, baseCommand. c_str (), baseCommand. size () );
6267 o2::framework::internal::SHA1 (shakernels, kernelsall.c_str (), kernelsall.size ());
6368 }
6469#endif
@@ -159,8 +164,6 @@ int GPUReconstructionCUDA::genRTC(std::string& filename, unsigned int& nCompile)
159164 }
160165 HighResTimer rtcTimer;
161166 rtcTimer.ResetStart ();
162- std::string baseCommand = (mProcessingSettings .RTCprependCommand != " " ? (mProcessingSettings .RTCprependCommand + " " ) : " " );
163- baseCommand += (getenv (" O2_GPU_RTC_OVERRIDE_CMD" ) ? std::string (getenv (" O2_GPU_RTC_OVERRIDE_CMD" )) : std::string (_binary_GPUReconstructionCUDArtc_command_start, _binary_GPUReconstructionCUDArtc_command_len));
164167#ifdef WITH_OPENMP
165168#pragma omp parallel for schedule(dynamic, 1)
166169#endif
0 commit comments