Что значит «больше всего» и «наименьшее» Значительный размер означает?

Я читаю книгу о C ++ AMP и не совсем понимаю некоторые термины:

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

Я видел подобную терминологию, используемую в документации Eigen, поэтому я подозреваю, что это довольно распространенное использование.

Итак, давайте предположим, что у меня есть 2D-индекс, массив, что угодно:

// construct it:
ArrayType my2DArray(rows,columns);

// now index it:
float element = my2DArray[rowIdx,colIdx];

Забыв на мгновение тип из ArrayTypeи больше думать о терминологии, которая будет самый а также наименее значительный размер этого массива?

1

Решение

При логическом распределении потоков в нескольких измерениях обычно происходит сопоставление этого N-мерного пространства с линейным пространством. Измерение, которое меньше всего изменяет линейное пространство, является наименее значимым измерением.

В качестве примера, отображение двумерной (X, Y) координаты в линейное пространство может быть определено с использованием выражения (Y * ширина + X). Здесь X — наименее значимое измерение, а Y — наиболее значимое измерение. Аналогично, для трехмерного (X, Y, Z) пространства выражение может быть (Z * ширина * высота + Y * ширина + X). Здесь X все еще наименее значимый, но Z является наиболее значимым. Ваш макет может не совпадать, например, вы можете выбрать отображение линейного пространства на (Z * ширина * высота + X * высота + Y), и в этом случае Y является наименее значимым измерением.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector