AMD只保留了2.9,2.8和2.7版本的SDK online,所有這些版本都適用於OpenCL 1.2。 我想讓我的應用程序與OpenCL 1.1硬件兼容。 由於我堅持使用1.2 SDK並且沒有太多的硬件支持來測試,我想知道什麼是正確的方法來做到這一點?使用AMD APP SDK 2.9創建符合OpenCL 1.1的應用程序?
我從Khronos網站下載了1.1頭文件,並將它們用於我的MinGW編譯器。 該應用程序在我的ATI GPU上僅使用OpenCL 1.1驅動程序,但我不確定自己是否正確。我有這個疑問,因爲我仍然從OpenCL 1.2的SDK鏈接OpenCL.lib。
我也應該從我的應用程序SDK分發OpenCL.dll?
什麼是通過禁用OpenCL代碼以避免在非兼容硬件中error message至少其他所有內容都運行的最佳方法?
感謝您的建議。現在假設我的應用程序符合OpenCL 1.1並且正常工作。但是,如果它在低於該版本的硬件上運行,它將顯示錯誤消息,我的應用程序將不會啓動。如何禁用不支持OpenCL的硬件? –
應用相同的原則 - 您應該使用版本1.0中的API。所有主要供應商都支持OpenCL 1.1,因此您描述的情況很難成爲 –
@Cool_Coder最簡單的方法是使用clGetPlatformInfo和CL_PLATFORM_VERSION組合來詢問首個支持OpenCL版本的設備。如果它低於您的要求,則打印警告消息並將路徑轉移到C實現。 – Meluha