Что я могу использовать вместо инструкций LOP3 для работы с типами данных uint64_t и выполнять 3 операндных логических операции, используя одну инструкцию? - PullRequest
0 голосов
/ 23 февраля 2019

Я работаю над проектом, и мне нужно сделать 3 операнда логической операции с типами данных uint64_t. Но инструкция ltp3 ptx работает только с 32-битным типом данных (.b32).

Документация LOP3

Что можно использовать вместо инструкций LOP3 для работы с типами данных uint64_t и выполнять 3 операндных логических операции с использованием одной инструкции?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Я много искал и не нашел в документации ptx ничего, что могло бы сделать 3 операнда логической операции.Поэтому я изменил все типы данных на uint32_t в моем коде, и он работает совершенно быстрее.

0 голосов
/ 23 февраля 2019

Мне ... нужно 3 логических операции операндов ...

Нет, не нужно для этого.Помните, что любая логическая функция может быть выражена с помощью просто И, ИЛИ и НЕ (или даже просто И и НЕ, или даже просто НЕ-И).Эти наборы двоичных и унарных функций функционально завершены .

И - если вы считаете, что вам это нужно для скорости - это тоже маловероятно.Компилятор, вероятно, все равно оптимизирует ваши логические операции.

... логическая операция с типами данных uint64_t

Вы хотите применить логические операции к каждой из64 бита независимо?В этом случае просто обработайте такое значение как 2 последовательных 32-разрядных значения и делайте с ними все, что хотите, по одному разу для каждой половины.

...