使用环境变量NUM_HANDLES
、NUM_KERNELS
动态控制CPU、GPU并行度。
其中,NUM_HANDLES
(小于等于30)值设置越高内存占用越大,NUM_KERNELS
(1-4)值设置越高GPU显存占用越大,因此不同的硬件中需要进行动态的设置,全部设置最高会导致内存/显存溢出。同时C2计算结果需要根据二者计算时间综合得出,因此单纯提高某一个的并行度并不会使计算时间明显缩短。
经过实测设置NUM_HANDLES=15
,内存峰值为255G,NUM_HANDLES=10
,内存峰值为212G。
由于二者在不用硬件上计算的差异,现根据目前常用配置给出推荐设置。
-
AMD CPU可根据内存峰值的大小进行设置,建议256G内存设置
NUM_HANDLES=10
; -
Intel CPU 建议设置
NUM_HANDLES=10
; -
NUM_KERNELS
建议配置:
- 3090建议设置
NUM_KERNELS=3
(设置最高为4); 如3090有并行需求,需要根据并行数降低NUM_KERNELS值 - 3080建议设置
NUM_KERNELS=2
(设置最高为2)。 - 2080Ti建议设置
NUM_KERNELS=2
(设置最高为3);