Булевы операции на CUDA - PullRequest
       17

Булевы операции на CUDA

3 голосов
/ 15 января 2012

Моему приложению необходимо выполнять операции с битовыми векторами, такие как ИЛИ и XOR с битовыми векторами.

e.g suppose array   A     = 000100101 (a.k.a bit vector)
                    B     = 100101010
                    A . B = 100101111

Поддерживает ли CUDA логические переменные?например, bool как в C. Если да, как он хранится и используется?Поддерживает ли он также операции с битовыми векторами?Я не смог найти ответ в Руководстве по программированию CUDA.

1 Ответ

8 голосов
/ 15 января 2012

CUDA поддерживает стандарт C ++ bool, но в C ++ это только тип, который гарантированно поддерживает два состояния, поэтому битовые операции на нем не должны использоваться. В CUDA, как и в C ++, вы получаете стандартное дополнение побитовых операторов для целочисленных типов (и, или, xor, дополнение и сдвиг влево и вправо). В идеале вы должны стремиться использовать 32-битный тип (или упакованный 32-битный векторный тип CUDA) из соображений пропускной способности памяти.

...