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

Hai*_*ang 5 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)

tal*_*ies 8

不,除了几个返回标量值的1级例程之外,CUBLAS API是异步的.

3级例程如cublasDgemm不阻塞主机,您需要调用阻塞API例程,如同步内存传输或显式主机-GPU同步调用,以确保CUBLAS调用已完成.