Я намагаюся скомпілювати набір ядер OpenCL в проекті C ++ на OS X El Capitan 10.11.2.
Використовувана машина є iMac (Retina 5K, 27-дюймовий, кінець 2015 р.), Що містить AMD Radeon R9 M395X 4096 Мб, обраний як пристрій OpenCL. Я використовую рамку OpenCL, яка постачається з ОС.
На конкретному ядрі збірка програми OpenCL не працює з цим CL_PROGRAM_BUILD_LOG:
SC не вдалося. Причини не вказані.
Одні і ті ж ядра чудово збираються, вибираючи процесор тієї ж машини, що і пристрій OpenCL або аналогічну машину з графічним процесором Nvidia.
Відповіді:
3 для відповіді № 1Проблемне джерело ядра можна звести до наступного:
kernel void sampleKernel (bool param) {}
Використовуючи a bool
як параметр ядра OpenCL не підтримується специфікацією OpenCL C, див. https://stackoverflow.com/a/4441865/463796
Заміна типу параметра на a char
вирішує проблему.