У меня есть код, который делает некоторые вычисления на трехмерных массивах. Код оптимизирован для работы на GPU. 3D-массив в основном представляет собой набор 2D-массивов. Каждый из них хранится на странице трехмерного массива.
Для простоты, давайте рассмотрим весь код:
A = rand(512,512,100,'gpuArray');
B = fftshift(fftshift(fft2(fftshift(fftshift(A,1),2)),1),2);
Где 512 * 512 - это размеры каждого двумерного массива, а 100 - количество этих двумерных массивов.
В nVidia GTX 1060 для вычисления требуется x millisecond
.
Я пытался изменить размер 2D-массива на 256*256
или 128*128
, улучшения производительности не было бы замечено. Новое время около 0.9*x milliseconds
.
Такое поведение ожидается, поскольку, AFAIK, меньший массив не будет использовать GPU достаточно, и многие ядра будут IDLE. Так что здесь нет никакой реальной выгоды.
Мой вопрос:
Если бы я купил лучший графический процессор, такой как 1080ti или новый 2080ti (кажется, сейчас недоступен), получу ли я реальное повышение производительности? Я имею в виду, так как я даже не использовал все возможности 1060, будет ли лучший графический процессор иметь реальное значение?
Я мог бы подумать, что тактовая частота может иметь значение. Однако я не уверен, насколько это улучшение будет значительным.
Одним из преимуществ лучшего графического процессора является больший объем памяти, который позволяет мне выполнять процесс на 1024 * 1024 (что я не могу сделать на 1060 графическом процессоре). Однако это не моя главная забота.