6

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

    cublasDgemm();
//cublasGetVector();
    host_functions()

此外,在两个相邻的内核调用之间呢?

cublasDgemm();
cublasDgemm();

并且,不涉及先前内核中使用的全局内存的同步传输呢?

cublasDgemm(...gA...gB...gC);
cublasGetVector(...gD...D...);
4

1 回答 1

9

不,CUBLAS API 是异步的,除了一些返回标量值的 1 级例程。

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

于 2012-12-02T12:02:43.173 回答