为 CUDA 编译器驱动程序禁用二进制缓存

Disable Binary Caching for the CUDA compiler driver

我注意到 CUDA/OpenCL 通过编译器驱动程序(驱动程序版本:440.64)的编译时间在第一次编译内核后快了 10 倍。 因此,驱动程序缓存生成的二进制文件而不是每次都编译并从代码缓存中检索它。

有没有办法...

  1. 在每个 运行 中禁用二进制缓存并强制编译?
  2. 访问有关缓存二进制文件的信息?

根据 Nvidia 文档,这可以通过 JIT 缓存选项解决 CUDA Pro Tip: Understand Fat Binaries and JIT Caching

  1. 导出以下环境变量会阻止 JIT 缓存 并在每个 运行 上强制编译:export CUDA_CACHE_DISABLE=1
  2. 在 Linux 所有缓存文件都存储在:~/.nv/ComputeCache