Рассмотрим код, размещенный на sgarizvicublasSgetriBatched ошибка компиляции с кандидатом CUDA 7.0 Release
CUBLAS: Incorrect inversion for matrix with zero pivot
Я использую этот код, как вне-полки репродуктора моей проблемы.
Если я скомпилирую его с CUDA 6.0, все будет хорошо. Напротив, что, если я скомпилировать его с помощью CUDA 6.5 или CUDA 7.0 релиз-кандидат получаю:
Error 13 error C2664: 'cublasSgetriBatched' : cannot convert parameter 3 from 'float **' to 'const float *[]' C:\Users\user\Documents\Project\StackOverflow15\StackOverflow15\kernel.cu 70 1 StackOverflow15
Является ли это ошибка или я делаю что-то плохое?
Моя конфигурация: Windows 7, Microsoft Visual Studio 2010, режим выпуска, x64, compute_20, sm_21.
EDIT
После ответа Роберта Crovella и комментарий Park Young-Bae, в заостренный пример может быть установлена для работы с CUDA 6.5 или 7.0, изменив линию
cublascall(cublasSgetriBatched(handle,n,A_d,lda,P,C_d,lda,INFO,batchSize));
в
cublascall(cublasSgetriBatched(handle,n,(const float **)A_d,lda,P,C_d,lda,INFO,batchSize));
Это не связано с CUDA, это правила сглаживания C++. Преобразование 'float **' в 'float const **' недопустимо. [См. FAQ по ISO C++] (http://isocpp.org/wiki/faq/const-correctness#constptrptr-conversion). –