Не удается инициализировать использование double (fp64) в программах OpenCL - PullRequest
2 голосов
/ 07 марта 2011

когда я использую следующую строку в моих программах OpenCL

#pragma OPENCL EXTENSION cl_khr_fp64 : enable 

Я получаю следующую ошибку OpenCL:

cl::Error: -46, (std::exception.what() returns "clCreateKernel")

Кто-нибудь знает почему?Что я делаю не так?

Кстати, у меня есть следующая система:

[INFO] Name: GeForce GTX 470
[INFO] Vendor: NVIDIA Corporation
[INFO] Profile: FULL_PROFILE
[INFO] Version: OpenCL 1.0 CUDA
[INFO] Driver: 260.19.06

Приветствия,

Ответы [ 2 ]

2 голосов
/ 14 марта 2011

Случайно ли вы используете макрос для строковой классификации C?

Если это так, вам нужно изменить код так, чтобы он выглядел следующим образом:

#pragma OPENCL EXTENSION cl_khr_fp64 : enable \n

Это потому, что процесс строкового преобразования берет все пробелы и преобразует их в один пробел. Тем не менее, препроцессор C требует «новой строки» для разделения следующей строки.

2 голосов
/ 07 марта 2011

Полагаю, что драйвер OpenCL 1.0 для GeForce GTX 470, который вы используете, не поддерживает fp64.

Попробуйте новый доступный драйвер OpenCL 1.1 здесь.

...