我使用的是最新版本CUDA 5.5和新CUBLAS有状态的味道,每一个功能需要一个cublasHandle_t如
cublasHandle_t handle;
cublasCreate_v2(&handle);
cublasDgemm_v2(handle, A_trans, B_trans, m, n, k, &alpha, d_A, lda, d_B, ldb, &beta, d_C, ldc);
cublasDestroy_v2(handle);
Run Code Online (Sandbox Code Playgroud)
像某种类型那样尽可能多地重用这个句柄实例是一个好习惯,Session或者性能影响是如此之小以至于通过使用短生存句柄实例来降低代码复杂性更有意义,因此不断创建/销毁它?
我认为这是一个好习惯,有两个原因: