相关疑难解决方法(0)

什么时候调用cudaDeviceSynchronize?

什么时候cudaDeviceSynchronize真的需要调用这个函数?

据我从CUDA文档中了解,CUDA内核是异步的,因此我们应该cudaDeviceSynchronize在每次内核启动后调用它们.但是,cudaDeviceSynchronize在时间测量之前,除了一个之外,我尝试了相同的代码(训练神经网络).我发现我得到了相同的结果,但速度在7-12x之间(取决于矩阵大小).

所以,问题是是否有任何理由使用cudaDeviceSynchronize时间测量.

例如:

我应该放在cudaDeviceSynchronize两者之间吗?

从我的实验看来我没有.

为什么这么cudaDeviceSynchronize慢的程序呢?

cuda gpu gpgpu

53
推荐指数
3
解决办法
6万
查看次数

cublas内核函数会自动与主机同步吗?

关于cublas的一般问题.对于单个线程,如果没有从GPU到CPU的内存传输(例如cublasGetVector),cublas内核函数(例如cublasDgemm)是否会自动与主机同步?

    cublasDgemm();
//cublasGetVector();
    host_functions()
Run Code Online (Sandbox Code Playgroud)

那么,两个相邻的内核调用之间呢?

cublasDgemm();
cublasDgemm();
Run Code Online (Sandbox Code Playgroud)

那么,不涉及前一个内核中使用的全局内存的同步传输呢?

cublasDgemm(...gA...gB...gC);
cublasGetVector(...gD...D...);
Run Code Online (Sandbox Code Playgroud)

cublas

5
推荐指数
1
解决办法
708
查看次数

标签 统计

cublas ×1

cuda ×1

gpgpu ×1

gpu ×1