我在Windows7 + Cygwin + AMD APP(幾周前下載)上編寫OpenCL代碼。我的代碼工作,但 - 一些內核使用的功能是從頭文件丟失,例如:AMD APP包含文件丟失的內核功能和類型
void barrier(cl_mem_fence_flags flags)
event_t async_work_group_copy(
__local gentype *dst,
const __global gentype *src,
size_t num_gentypes,
event_t event)
還有event_t
數據類型。就像我說的,這並不妨礙編譯,因爲內核不是由我的C編譯器編譯的,而是由OpenCL庫編譯的。爲什麼會這樣,我該怎麼辦?
由於這些函數僅在內核代碼中可用,您爲什麼期望在宿主代碼使用的頭文件中找到它們?代碼不是標準的C,因此主機編譯器將無法使用這樣的頭來編譯代碼。 – chippies
@chippies:我期望找到他們,因爲我找到了所有的休息;並且因爲「預編譯」在IDE中需要儘可能檢查語法和調用語義;並且因爲自動完成和提示需要功能簽名;等等。 – einpoklum
您可能需要從AMD爲您的IDE下載一個插件,以正確處理OpenCL內核代碼的這些功能(不保證有插件)。由於您使用的是AMD APP SDK,因此您還可以在其內核分析器中編輯內核,該內核提供了這些功能。 – chippies