diff --git a/taichi/compilation_manager/kernel_compilation_manager.cpp b/taichi/compilation_manager/kernel_compilation_manager.cpp index 46fb29a10cf7b..b9c3f5e631fad 100644 --- a/taichi/compilation_manager/kernel_compilation_manager.cpp +++ b/taichi/compilation_manager/kernel_compilation_manager.cpp @@ -216,7 +216,11 @@ const CompiledKernelData *KernelCompilationManager::try_load_cached_kernel( auto iter = kernels.find(kernel_key); if (iter != kernels.end()) { auto &k = iter->second; - if (auto loaded = load_ckd(kernel_key, arch)) { + if (k.compiled_kernel_data) { + TI_DEBUG("Create kernel '{}' from cache (key='{}')", + kernel_def.get_name(), kernel_key); + return k.compiled_kernel_data.get(); + } else if (auto loaded = load_ckd(kernel_key, arch)) { TI_DEBUG("Create kernel '{}' from cache (key='{}')", kernel_def.get_name(), kernel_key); TI_ASSERT(loaded->arch() == arch);