It is an error to include both cublas.h and cublas_v2.h

在使用vs2019编译cuda的时候出现了
C1189 "It is an error to include both cublas.h and cublas_v2.h"的问题
编译环境是vs2019和cuda12.0

在CUDA 10及以上版本中,NVIDIA分离了cublas库版本,分别为cublas和cublas_v2,因此在使用CUDA 10及以上版本时,不能同时包含cublas.h和cublas_v2.h头文件。在您的环境中,使用的是CUDA 12.0版本,所以出现了这个问题。

解决方法是只包含cublas_v2.h头文件,因为cublas_v2.h包含了cublas.h,可以修改您的代码,只包含cublas_v2.h头文件,例如:

#include<cuda_runtime.h>
#include<cublas_v2.h>

intmain(){
    // 使用cublas_v2.h头文件中的函数
    ...
    return0;
}

如果您的代码中存在对cublas.h头文件的引用,可以将其删除或注释掉,例如:

// #include <cublas.h>
#include<cublas_v2.h>

intmain(){
    // 使用cublas_v2.h头文件中的函数
    ...
    return0;
}

这样就可以解决"C1189 It is an error to include both cublas.h and cublas_v2.h"的问题。

cublas.h 和 cublas_v2.h,两个是不是冲突了。