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

Posted

技术标签:

【中文标题】禁用 CUDA 编译器驱动程序的二进制缓存【英文标题】:Disable Binary Caching for the CUDA compiler driver 【发布时间】:2020-08-07 19:15:56 【问题描述】:

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

有没有办法...

    在每次运行时禁用二进制缓存并强制编译? 要访问有关缓存二进制文件的信息?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于禁用 CUDA 编译器驱动程序的二进制缓存的主要内容,如果未能解决你的问题,请参考以下文章

缺少 8 位变量的 CUDA 内联 PTX 约束字母,以禁用 8 位变量的 L1 缓存(布尔)

linux 安装cuda 怎么禁用nouveau

为什么CUDA程序可以使用CMake“FIND_PACKAGE”,但不能使用“LANGUAGES CUDA”?

CUDA 中的编译时信息

Linux安装Nvidia驱动和CUDA的正确方法(详细)

CUDA compiler driver nvcc 散点 part 2