环境变量#
运行时使用#
以下是 CuPy 在运行时使用的环境变量。
- CUDA_PATH#
包含 CUDA 的目录路径。默认使用包含
nvcc
的目录的父目录。如果找不到nvcc
,则使用/usr/local/cuda
。详见 使用自定义 CUDA 安装。
- CUPY_CACHE_SAVE_CUDA_SOURCE#
默认值:
0
如果设置为
1
,CUDA 源代码文件将与编译后的二进制文件一起保存在缓存目录中,用于调试。注意:如果缓存中已存在编译后的二进制文件,则不会保存源代码文件。
- CUPY_CACHE_IN_MEMORY#
默认值:
0
如果设置为
1
,则CUPY_CACHE_DIR
和CUPY_CACHE_SAVE_CUDA_SOURCE
将被忽略,缓存将存储在内存中。此环境变量可以减少磁盘 I/O,但在将nvcc
设置为编译器后端时会被忽略。
- CUPY_DISABLE_JITIFY_CACHE#
默认值:
0
如果设置为
1
,Jitify 加载的头文件将不会缓存在磁盘上(到CUPY_CACHE_DIR
)。默认始终缓存。
- CUPY_DUMP_CUDA_SOURCE_ON_ERROR#
默认值:
0
如果设置为
1
,当 CUDA 内核编译失败时,CuPy 会将 CUDA 内核代码转储到标准错误输出。
- CUPY_CUDA_COMPILE_WITH_DEBUG#
默认值:
0
如果设置为
1
,CUDA 内核将使用调试信息编译(--device-debug
和--generate-line-info
)。
- CUPY_SEED#
设置随机数生成器的种子。
- CUPY_EXPERIMENTAL_SLICE_COPY#
默认值:
0
如果设置为
1
,将启用以下语法cupy_ndarray[:] = numpy_ndarray
- CUPY_ACCELERATORS#
默认值:
"cub"
(在 ROCm HIP 环境中,默认值为""
,即不使用加速器。)一个逗号分隔的后端名称字符串(
cub
、cutensor
或cutensornet
),指示在 CuPy 操作中使用的加速后端及其优先级(降序排列)。默认情况下,所有加速器在 HIP 上禁用,仅在 CUDA 上启用 CUB。
- CUPY_TF32#
默认值:
0
如果设置为
1
,它允许 CUDA 库使用 Tensor Cores TF32 计算进行 32 位浮点计算。
- CUPY_CUDA_ARRAY_INTERFACE_SYNC#
默认值:
1
这控制 CuPy 作为 Consumer 的行为。如果设置为
0
,当 CuPy 消费由实现 CUDA Array Interface 的外部库提供的设备数组时,将*不*执行流同步。更多详情,请参阅 CUDA Array Interface v3 文档中的 Synchronization 要求。
- CUPY_CUDA_ARRAY_INTERFACE_EXPORT_VERSION#
默认值:
3
这控制 CuPy 作为 Producer 的行为。如果设置为
2
,正在操作数据的 CuPy 流将不会导出,因此 Consumer(另一个库)将不会执行任何流同步。更多详情,请参阅 CUDA Array Interface v3 文档中的 Synchronization 要求。
- CUPY_DLPACK_EXPORT_VERSION#
默认值:
0.6
这控制 CuPy 的 DLPack 支持。目前,将值设置为小于 0.6 会将托管内存伪装成普通设备内存,从而支持与尚未更新 DLPack 支持的库进行数据交换;而从 0.6 开始,CUDA 托管内存可以被正确识别为有效的设备类型。
- NVCC#
默认值:
nvcc
定义编译 CUDA 源代码时使用的编译器。注意,大多数 CuPy 内核使用 NVRTC 构建;此环境变量仅在
RawKernel
/RawModule
使用nvcc
后端或使用cub
作为加速器时有效。
- CUPY_CUDA_PER_THREAD_DEFAULT_STREAM#
默认值:
0
如果设置为
1
,CuPy 将使用 CUDA 每线程默认流,有效地使每个主机线程自动在自己的流中执行,除非指定了 CUDA 默认 (null
) 流或用户创建的流。如果设置为0
(默认),则使用 CUDA 默认 (null
) 流,除非指定了每线程默认流 (ptds
) 或用户创建的流。
- CUPY_COMPILE_WITH_PTX#
默认值:
0
默认情况下,CuPy 直接将内核编译为 SASS (CUBIN) 以支持 CUDA 增强兼容性。如果设置为
1
,CuPy 会将内核编译为 PTX,并让 CUDA Driver 从 PTX 组装 SASS。此选项仅对 CUDA 11.1 或更高版本有效;在早期 CUDA 版本上,CuPy 总是编译为 PTX。此外,此选项仅在选择 NVRTC 作为编译后端时适用。NVCC 后端总是编译为 SASS (CUBIN)。
- CUDA Toolkit 环境变量
除了上面列出的环境变量之外,与任何 CUDA 程序一样,CUDA Toolkit Documentation 中列出的所有 CUDA 环境变量也会被遵守。
注意
当 CUPY_ACCELERATORS
或 NVCC
环境变量设置时,需要 g++-6 或更高版本作为运行时主机编译器。关于如何安装 g++ 的详细信息,请参阅 从源代码安装 CuPy。
安装时使用#
这些环境变量在安装(从源代码构建 CuPy)时使用。
- CUTENSOR_PATH#
cuTENSOR 根目录的路径,该目录包含
lib
和include
目录。(实验性)
- CUPY_USE_CUDA_PYTHON#
默认值:
0
如果设置为
1
,CuPy 将使用 CUDA Python 构建。
- CUPY_NVCC_GENERATE_CODE#
为特定的 CUDA 架构构建 CuPy。例如
CUPY_NVCC_GENERATE_CODE="arch=compute_60,code=sm_60"
要指定多个架构,请使用分号 (`;`) 连接
arch=...
字符串。如果指定current
,则会在构建时自动检测当前安装的 GPU 架构。如果未设置此项,默认支持所有架构。
- CUPY_NUM_BUILD_JOBS#
默认值:
4
启用或禁用并行构建,设置用于并行构建扩展的进程数。
- CUPY_NUM_NVCC_THREADS#
默认值:
2
启用或禁用 nvcc 并行编译,设置使用 nvcc 编译文件时使用的线程数。