Próbuję skompilować zestaw jąder OpenCL w projekcie C ++ na OS X El Capitan 10.11.2.
Używany komputer to iMac (Retina 5K, 27-calowy, koniec 2015 r.), Zawierający AMD Radeon R9 M395X 4096 MB wybrany jako urządzenie OpenCL. Używam frameworku OpenCL dostarczanego z systemem operacyjnym.
W określonym jądrze kompilacja programu OpenCL kończy się niepowodzeniem z tym CL_PROGRAM_BUILD_LOG:
SC nie powiodło się. Nie podano powodu.
Te same jądra kompilują się dobrze przy wyborze procesora tego samego komputera jako urządzenia OpenCL lub podobnego komputera z procesorem graficznym Nvidia.
Odpowiedzi:
3 dla odpowiedzi № 1Problematyczne źródło jądra można sprowadzić do następujących:
kernel void sampleKernel (bool param) {}
Używać bool
ponieważ parametr jądra OpenCL nie jest obsługiwany przez specyfikację OpenCL C, patrz np. https://stackoverflow.com/a/4441865/463796
Zamieniając typ parametru na char
rozwiązuje problem.