7 dim3 BlockDim,
void **KernelArgs,
8 uint64_t ShmemSize,
void *Stream) {
13 static const bool IsProteusDisabledEnvVar =
14 getEnvOrDefaultBool(
"PROTEUS_DISABLE",
false);
16 if (IsProteusDisabledEnvVar) {
18 Kernel, GridDim, BlockDim, KernelArgs, ShmemSize,
19 static_cast<typename JitDeviceImplT::DeviceStream_t
>(Stream));
22 auto &
Jit = JitDeviceImplT::instance();
23 if (
Jit.isProteusDisabled()) {
25 Kernel, GridDim, BlockDim, KernelArgs, ShmemSize,
26 static_cast<typename JitDeviceImplT::DeviceStream_t
>(Stream));
29 auto OptionalKernelInfo =
Jit.getJITKernelInfo(
Kernel);
30 if (!OptionalKernelInfo) {
32 Kernel, GridDim, BlockDim, KernelArgs, ShmemSize,
33 static_cast<typename JitDeviceImplT::DeviceStream_t
>(Stream));
36 auto &KernelInfo = OptionalKernelInfo.value().get();
38#if PROTEUS_ENABLE_DEBUG
39 Logger::logs(
"proteus") <<
"JIT Launch Kernel\n";
40 Logger::logs(
"proteus") <<
"=== Kernel Info\n";
41 Logger::logs(
"proteus") <<
"KernelName " << KernelInfo.getName() <<
"\n";
42 Logger::logs(
"proteus") <<
"Grid " << GridDim.x <<
", " << GridDim.y <<
", "
44 Logger::logs(
"proteus") <<
"Block " << BlockDim.x <<
", " << BlockDim.y
45 <<
", " << BlockDim.z <<
"\n";
46 Logger::logs(
"proteus") <<
"KernelArgs " << KernelArgs <<
"\n";
47 Logger::logs(
"proteus") <<
"ShmemSize " << ShmemSize <<
"\n";
48 Logger::logs(
"proteus") <<
"Stream " << Stream <<
"\n";
49 Logger::logs(
"proteus") <<
"=== End Kernel Info\n";
52 return Jit.compileAndRun(
53 KernelInfo, GridDim, BlockDim, KernelArgs, ShmemSize,
54 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.hpp:6
cudaError_t launchKernelDirect(void *KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, CUstream Stream)
Definition CoreDeviceCUDA.hpp:20