in src/c_interface.cpp [72:101]
bool loadKernelsHelper(const std::unordered_map<std::string, const uint8_t*>& kernels) {
for (auto kernel : kernels) {
if (kernels_.count(kernel.first) > 0)
continue;
CUmodule module;
int res = cuModuleLoadData(&module, kernel.second);
if (res != 0) {
std::cerr << "Failed to load " << kernel.first << " " <<
res << std::endl;
return false;
}
CUfunction function;
std::string kernel_name = kernel.first.substr(0, kernel.first.size() - 6);
res = cuModuleGetFunction(&function, module, kernel_name.c_str());
if (res != 0) {
std::cerr << "Failed to extract " << kernel_name << " " <<
res << std::endl;
return false;
}
kernels_.insert(std::make_pair(kernel.first, function));
}
return true;
}