环境变量#

对于运行时#

以下是CuPy在运行时使用的环境变量。

CUDA_PATH#

包含 CUDA 的目录路径。默认使用包含 nvcc 的目录的父目录。当找不到 nvcc 时,使用 /usr/local/cuda。详情请参见 使用自定义 CUDA 安装

CUPY_CACHE_DIR#

默认值: ${HOME}/.cupy/kernel_cache

存储内核缓存的路径。详情请参见 性能最佳实践

CUPY_CACHE_SAVE_CUDA_SOURCE#

默认值:0

如果设置为 1,CUDA 源文件将与编译后的二进制文件一起保存在缓存目录中以供调试目的使用。注意:如果编译后的二进制文件已经存储在缓存中,则不会保存源文件。

CUPY_CACHE_IN_MEMORY#

默认值:0

如果设置为 1CUPY_CACHE_DIRCUPY_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_GPU_MEMORY_LIMIT#

默认值:``0``(无限制)

每个设备可以分配的内存量。该值可以以绝对字节数或总内存的分数(例如,"90%")指定。详情请参阅 内存管理

CUPY_SEED#

设置随机数生成器的种子。

CUPY_EXPERIMENTAL_SLICE_COPY#

默认值:0

如果设置为 1,则启用以下语法:

cupy_ndarray[:] = numpy_ndarray
CUPY_ACCELERATORS#

默认值:"cub"``(在 ROCm HIP 环境中,默认值为 ``""。即,不使用加速器。)

一个以逗号分隔的后端名称字符串(cubcutensorcutensornet),指示在 CuPy 操作中使用的加速后端及其优先级(按降序排列)。默认情况下,HIP 上的所有加速器都被禁用,而 CUDA 上仅启用 CUB。

CUPY_TF32#

默认值:0

如果设置为 1,它允许 CUDA 库使用 Tensor Cores TF32 计算进行 32 位浮点计算。

CUPY_CUDA_ARRAY_INTERFACE_SYNC#

默认值:1

这控制了 CuPy 作为消费者的操作。如果设置为 0,当一个由实现 CUDA Array Interface 的外部库提供的设备数组被 CuPy 消费时,将 执行流同步。更多详情,请参阅 CUDA Array Interface v3 文档中的 Synchronization 要求。

CUPY_CUDA_ARRAY_INTERFACE_EXPORT_VERSION#

默认值:3

这控制了 CuPy 作为生产者的行为。如果设置为 2,正在操作数据的 CuPy 流将不会被导出,因此消费者(另一个库)将不会执行任何流同步。更多详情,请参阅 CUDA Array Interface v3 文档中的 Synchronization 要求。

CUPY_DLPACK_EXPORT_VERSION#

默认值:0.6

这控制了CuPy的DLPack支持。目前,设置一个小于0.6的值会将托管内存伪装成普通设备内存,这使得可以与尚未更新其DLPack支持的库进行数据交换,而从0.6开始,CUDA托管内存可以被正确识别为有效的设备类型。

NVCC#

默认值:nvcc

定义编译CUDA源代码时使用的编译器。请注意,大多数CuPy内核是使用NVRTC构建的;此环境变量仅对使用``nvcc``后端的:class:~cupy.RawKernel/:class:`~cupy.RawModule`或使用``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 驱动程序从 PTX 组装 SASS。此选项仅对 CUDA 11.1 或更高版本有效;在早期 CUDA 版本上,CuPy 始终编译为 PTX。此外,此选项仅在选择 NVRTC 作为编译后端时适用。NVCC 后端始终编译为 SASS (CUBIN)。

CUDA 工具包环境变量

除了上述环境变量外,如同在任何CUDA程序中一样,CUDA Toolkit Documentation 中列出的所有CUDA环境变量也将被尊重。

备注

当设置 CUPY_ACCELERATORSNVCC 环境变量时,需要 g++-6 或更高版本作为运行时主机编译器。有关如何安装 g++ 的详细信息,请参阅 从源代码安装 CuPy

对于安装#

这些环境变量在安装过程中使用(从源代码构建 CuPy)。

CUTENSOR_PATH#

包含 libinclude 目录的 cuTENSOR 根目录路径。(实验性)

CUPY_INSTALL_USE_HIP#

默认值:0

如果设置为 1,CuPy 将为 AMD ROCm 平台构建(实验性)。有关构建 ROCm 支持的详细信息,请参阅 安装二进制包

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 编译文件时使用的线程数。

此外,环境变量 CUDA_PATHNVCC 在构建时也会被考虑。