2011-05-11 61 views

回答

1

某些類型在OpenCL的C編程語言來定義,如intfloat4

相應類型與cl_前綴主機API中定義,如cl_int,​​等。這些類型用於OpenCL API函數中,並且應該用於傳遞內核參數和計算緩衝區的大小。

+0

因此,當我處理一些unsigned char的緩衝區時,那麼在主機站點上,我必須將此緩衝區定義爲cl_uchar,然後將其複製到設備,然後將其處理並返回到主機緩衝區,並將其定義爲cl_uchar。 – 2011-05-11 15:37:19

+0

是的。 OpenCL標準修正了這些類型的大小,它可能與C編譯器使用的大小不同(afaik在char中沒有固定大小的char或int)。 – 2011-05-11 16:32:11

+0

而size_t又怎麼樣,沒有兼容OpenCL類型。當我在64位主機上使用size_t時,它的大小爲8,但在NVIDIA GPU上的大小爲4。因此,我在設備上使用而不是長整型。這是一個很好的決定,或者它可能導致問題? – 2011-05-11 17:21:00

相關問題