Узкие места

Попытки использовать архитектуру фон Неймана для параллельных вычислений легко упираются в архитектурные ограничения. Вот простой пример.

Постоянные пересылки

Для сложения двух чисел,

которые хранятся в памяти в массиве, нужно загрузить их в регистры из памяти, затем сложить, затем из регистра суммы переслать обратно в память. Все эти действия задействуют  общую шину. На самом деле тут пропущены ещё три вычисления

  • 2-х новых адресов для следующих слагаемых;
  • 1-ого адреса новой суммы.

Если у вас несколько ядер работают через эту общую шину, эффективность распараллеливания весьма низкая.

Какой же выход из этого?

Каждый ходит своей дорогой

Если бы каждые данные, которые необходимо обработать, ходили по своему пути,  который не пересекается с путями других данных, количество параллельных ядер было бы неограниченно. Для этого надо предложить максимальный размер данных, которые не нужно постоянно пересылать из памяти в регистры и обратно по мере обработки. И что бы это было большинством задач компьютера. Как ни странно, это легко понять.

images

99% трафика – изображения. Поэтому размер такого места должен вмещать хотя бы экран. Фирма Apple утверждает, что всем пикселям хватит 12 разрядов. Если каждому пикселю на экране соответствует один регистр, то их можно организовать как сетку на плоскости, каждый будет иметь четыре соседних регистра, для плоских сеток. Если сетка трёхмерная – то шесть соседних регистров. Для передачи данных используется перезапись в один из соседних регистров. Организация обмена данными между этими регистрами и линейной памятью – только с краевыми регистрами в сетке регистров.

По объёму подобные регистры это такая же по размеру память, как в нынешних процессорных кешах L1, L2, L3.  Отличие в функциях.

 

 

 

Запись опубликована в рубрике ISI. Добавьте в закладки постоянную ссылку.

Добавить комментарий