opencl程式設計中的乙個問題

2021-07-03 06:51:06 字數 941 閱讀 1084

這幾天在看opencl程式設計指南,發現了乙個頭疼的問題,程式設計中有時候用cl_int 有時候用int,等等這些,開始理解是int是c的語法結構,cl_int是opencl的語法結構,編寫核心用cl_int,編寫c用int。但是發現c用有時候也有cl_int,核心中基本上都是int。亂了,咋能這樣呢?

困難禁不住仔細研究,原來呀,cl_int只是opencl api的資料型別,int依然是opencl的資料型別,怎麼理解呢?就是如果要往opencl api裡面傳引數或返回值的話就需要使用cl_int,其他地方都用int,opencl的語法和c的語法很大程度上是相同的。當然cl_int和int也是對應的,相當於cl_int 是int的別名。

哈哈哈,解決了,就這樣理解吧。

校正一下錯誤,如下:

cl_int 和 int有什麼區別

什麼時候用cl_int 什麼時候用int?

大家有人知道麼

?你既然用了opencl環境,那麼最好跟opencl有關的都用cl_

如果是自定義的一些東西可以用自定義的

有本書裡面這樣寫 opencl語言中的型別是int 應用程式的api型別是cl_int

這句話怎解?

核心裡的資料型別是int的話,在主機端傳cl_int的值

為什麼要這麼麻煩呀

多加乙個cl_int有什麼作用麼

因為跨平台呀

你比如說cl_long

你認為是多少位元組的?

8個位元組吧

我告訴你,在**的64位瘟抖死系統下,long還是4位元組;而在高階的llvm clang與gcc裡才是8位元組

而在32位系統下,long都是4位元組

所以,你不用cl_long,在不同環境下,位元組長度是不一樣的,懂了吧/

哦 這個的意思就是說為了通用性

對於opencl核心程式裡的long都是8位元組

不論什麼機器上 long都是8個位元組

yep

opencl 乙個關於向量賦值的異常

在專案中,有乙個下面這樣的資料結構,storage儲存是個float4型別的陣列。typedef struct detected objects buffer detected objects buffer 這個結構物件的指標,在執行kernel函式的時候,會做為 global指標引數傳遞給kern...

乙個有關程式設計學習中的英語問題

已解決乙個有關程式設計學習中的英語問題 clearscreen 簡寫為 clrsc 這些簡寫的標準是根據發音來的嗎 還是別的 提問者 hj6039162 秀才 二級 最佳答案英語縮寫的基本方法是 對單詞而言,選取其中發音的子音字母,並且半母音 r尾音和鼻尾音往往不算。在這裡,發音與否,以及縮寫是否能...

程式設計中注意的乙個問題

在程式設計中經常會碰到程式執行效率低的問題,而有時候問題時出在迴圈體中。我們通過下面乙個例子看在程式設計中要注意的問題。在這個例子中的 主要功能是定時檢查資料庫中的幾個表是否發生了更新,如果有更新則自動重新整理顯示視窗中的對應資料網格。檢查這幾個表的資料是否更新是通過判斷乙個資料表中對應表名的乙個標...