【发布时间】:2021-06-22 20:41:45
【问题描述】:
我遇到了在 Azure Batch 的一个 VM 中运行某些 CUDA 程序的初始化时间缓慢的问题。
经过一些故障排除后,我做了一个简单的测试,运行这个调用,如下面的代码所示。
#include <stdio.h>
#include <cuda.h>
#include <cuda_runtime_api.h>
#include <time.h>
clock_t start, end;
double cpu_time_used;
int main()
{
CUresult result;
printf("CUDA version %d \n", CUDA_VERSION);
start = clock();
result = cuInit(0);
if (result != CUDA_SUCCESS) {
printf("cuInit failed with error code %d: %s\n", result, cudaGetErrorString(result));
return 1;
}
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("cuInit took %f seconds to execute \n", cpu_time_used);
return 0;
}
平均大约需要 1.9 秒。
一些规格:
- NVidia 驱动程序:460.32.03
- CUDAToolkit:10.2
- Azure Batch:nc6、Tesla K80
作为比较,相同的代码在我的桌面 (Windows) 以及另一个自定义 Azure VM(nc6,不是 Azure Batch)上运行,结果相似,为 0.03 秒。 (cudatoolkit 10.2)
-- 更新 1--
通过 Torch 调用 CUDA 初始化也显示出明显的延迟(对于第一次调用),如此测试所示:
run: 0, import torch: 0.430, cuda_available: 4.921
run: 1, import torch: 0.000, cuda_available: 0.000
run: 2, import torch: 0.000, cuda_available: 0.000
run: 3, import torch: 0.000, cuda_available: 0.000
max time for import torch: 0.43 s, max time for cuda_available: 4.92 s
torch.version 1.7.1+cu101 torch.version.cuda: 10.1
导入torch代码为:
import torch
cuda_available 代码是:
torch.cuda.is_available()
我的问题是 Azure Batch 为 CUDA 初始化正常行为所花费的时间?
【问题讨论】:
标签: azure cuda pytorch torch azure-batch