6 dim3 BlockDim,
void **KernelArgs,
7 uint64_t ShmemSize,
void *Stream) {
12 static const bool IsProteusDisabledEnvVar =
13 getEnvOrDefaultBool(
"PROTEUS_DISABLE",
false);
15 if (IsProteusDisabledEnvVar) {
17 Kernel, GridDim, BlockDim, KernelArgs, ShmemSize,
18 static_cast<typename JitDeviceImplT::DeviceStream_t
>(Stream));
21 auto &
Jit = JitDeviceImplT::instance();
22 if (
Jit.isProteusDisabled()) {
24 Kernel, GridDim, BlockDim, KernelArgs, ShmemSize,
25 static_cast<typename JitDeviceImplT::DeviceStream_t
>(Stream));
28 auto OptionalKernelInfo =
Jit.getJITKernelInfo(
Kernel);
29 if (!OptionalKernelInfo) {
31 Kernel, GridDim, BlockDim, KernelArgs, ShmemSize,
32 static_cast<typename JitDeviceImplT::DeviceStream_t
>(Stream));
35 auto &KernelInfo = OptionalKernelInfo.value().get();
37 if (Config::get().ProteusDebugOutput) {
38 Logger::logs(
"proteus") <<
"JIT Launch Kernel\n";
39 Logger::logs(
"proteus") <<
"=== Kernel Info\n";
40 Logger::logs(
"proteus") <<
"KernelName " << KernelInfo.getName() <<
"\n";
41 Logger::logs(
"proteus") <<
"Grid " << GridDim.x <<
", " << GridDim.y <<
", "
43 Logger::logs(
"proteus") <<
"Block " << BlockDim.x <<
", " << BlockDim.y
44 <<
", " << BlockDim.z <<
"\n";
45 Logger::logs(
"proteus") <<
"KernelArgs " << KernelArgs <<
"\n";
46 Logger::logs(
"proteus") <<
"ShmemSize " << ShmemSize <<
"\n";
47 Logger::logs(
"proteus") <<
"Stream " << Stream <<
"\n";
48 Logger::logs(
"proteus") <<
"=== End Kernel Info\n";
51 return Jit.compileAndRun(
52 KernelInfo, GridDim, BlockDim, KernelArgs, ShmemSize,
53 static_cast<typename JitDeviceImplT::DeviceStream_t
>(Stream));
auto __jit_launch_kernel_internal(void *Kernel, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, void *Stream)
Definition CompilerInterfaceDeviceInternal.h:5
cudaError_t launchKernelDirect(void *KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, CUstream Stream)
Definition CoreDeviceCUDA.h:38