我正在使用我的 GPU 和我的 CPU。当我分析内存传输时,我发现 cuBLAS 中的异步调用不会异步运行。
我有类似下面的代码
cudaEvent_t event;
cudaEventCreate(&event);
// time-point A
cublasSetVectorAsync(n, elemSize, x, incx, y, incy, 0);
cudaEventRecord(event);
// time-point B
cudaEventSynchronize(event);
// time-point C
我正在使用sys/time.h
配置文件(为清楚起见,省略了代码)。我发现cublasSetVectorAsync
调用在时间上占主导地位,就好像它的行为是同步的。即持续时间 AB 比持续时间 BC 长得多,并且随着我增加转移的大小而增加。
这可能是什么原因?是否需要在某处设置一些环境变量或需要使用更新的驱动程序?
我正在使用带有 Cuda 编译工具的 GeForce GTX 285,版本 4.1,V0.2.1221