Как рассчитать ускорение и эффективность в алгоритме гибридного процессора и графического процессора? - PullRequest
1 голос
/ 19 февраля 2020

У меня есть алгоритм, который я выполнял параллельно, используя только процессор, и я добился ускорения в 30 раз. То есть КПД равен 0,93 (КПД = ускорение / число ядер, т. Е. 0,93 = 30/32). Позже я добавил 2 графических процессора (Tesla C2075 по 448 ядер в каждом) вместе с 32 ядрами процессора. Чтобы рассчитать эффективность, включая процессоры и графические процессоры, следует ли добавить количество ядер графического процессора к ядрам процессоров? То есть я бы рассчитал эффективность, используя 928 ядер (32 + 448 + 448 = 928). Или он должен быть рассчитан по-другому?

Ускорение и эффективность были рассчитаны на основе сказанного здесь: https://software.intel.com/en-us/articles/predicting-and-measuring-parallel-performance

1 Ответ

0 голосов
/ 19 февраля 2020

Графические процессоры имеют большую архитектуру «ядра комплекса», называемую «SM» или «CU», с десятками конвейеров. Не очень похожи на «SIMD» ЦП, они могут выдавать команды параллельно этим конвейерам в «однопоточном» коде ядра.

Вы подсчитали «ядра» в ЦП, а не в конвейерах SIMD (что в 4–16 раз больше количества ядер), поэтому было бы неправильно подсчитывать SM-единицы Nvidia или CU Amd или Slice. подмножество Intel et c.

Tesla C2075 имеет 14 модулей SM, поэтому вы можете добавить 14 для каждого графического процессора (32 + 14 + 14).

Если вы также использовали код SIMDified для процессора, то это не будет неправильно считать каждый конвейер графического процессора, который в 32–192 раза превышает количество SM / CU (например, 448 на ваш графический процессор) (32*SIMD_WIDTH + 448 + 448).

По крайней мере, так я бы вычислял «ядро» эффективность "и" эффективность трубопровода ". Если передача данных в / из графического процессора не является узким местом, эффективность не должна сильно снижаться после добавления графических процессоров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...