Opencl поддържа ли булеви променливи?

OpenCL поддържа ли булеви променливи? В момента използвам JOCL (java), за да напиша моя код за извикване на openCL и не виждам нищо за булеви стойности.


person smuggledPancakes    schedule 14.12.2010    source източник


Отговори (1)


Да; но размерът на bool не е дефиниран. Следователно той няма свързан тип API (както размерът трябва да бъде стойността зависи от устройството).

Вижте раздел 6.1.1 Вграден скаларен тип данни на спецификацията OpenCL 1.1 за списък на поддържаните скаларни типове.

От раздел 6.8.k

Аргументите към __kernel функциите в програма не могат да бъдат декларирани с вградените скаларни типове bool, half, size_t, ptrdiff_t, intptr_t и uintptr_t. Размерът в байтове на тези типове, с изключение на половината, се дефинира от имплементацията и в допълнение може да бъде различен за OpenCL устройството и хост процесора, което затруднява разпределянето на буферни обекти, които да бъдат предавани като аргументи на ядро, декларирано като указател към тези типове

person grrussel    schedule 14.12.2010
comment
Объркан съм, има тип bool, но не мога да го използвам? - person smuggledPancakes; 15.12.2010
comment
Можете да го използвате в ядро, но не и за трансфери или достъпи между хоста и OpenCL кода на изчислително устройство, тъй като размерът не е преносимо дефиниран. - person grrussel; 15.12.2010