CUDA — определить количество банков в разделяемой памяти

Общая память «полосатая» в банки. Это приводит ко всей проблеме банковских конфликтов, как мы все знаем.

Вопрос:
Но как вы можете определить, как много банки («полоски») существуют в разделяемой памяти?

(Просматривая форумы NVIDIA «devtalk», кажется, что общая память для каждого блока «разветвляется» на 16 банков. Но как мы узнаем об этом? Потоки, предполагающие, что это несколько лет. Есть вещи, которые изменились? все Карты с поддержкой NVIDIA CUDA? Есть ли способ определить это из API времени выполнения (я не вижу его там, например, под cudaDeviceProp)? Есть ли ручной способ определить это во время выполнения?)

3

Решение

Как говорит @RobertHarvey, это задокументировано. Руководство по программированию указывает 16 банков для вычислительная возможность 1.x, и 32 банка для возможность вычислений 2.x а также 3.x. Таким образом, вы можете принимать любые решения на основе вычислительных возможностей (основной версии), возвращаемых в свойствах устройства.

Общая ссылка на онлайн-документацию cuda содержится в информационная ссылка для тега cuda.

8

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

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

По вопросам рекламы [email protected]