Неграфические вычисления.

 

С точки зрения гетерогенных и неграфических вычислительных задач весьма важны появившиеся два асинхронных вычислительных движка (Asynchronous Compute Engines — ACE). Они предназначены для планирования и распределения работы между исполнительными блоками для эффективной многозадачности и работают вместе с графическим командным процессором (Command Processor).

Radeon HD 7900 имеет два независимых вычислительных ядра и один графический. В сумме это даёт три программируемых блока и три потока команд, полностью отделённых друг от друга.

А в дополнение к асинхронной подаче команд для быстрого переключения контекста, новый GPU также имеет два двунаправленных контроллера прямого доступа к памяти (DMA), появившиеся в Cayman. Эти два контроллера необходимы для того, чтобы полностью использовать возможности новой шины PCI Express 3.0.

 

С точки зрения вычислений важна не только скорость выполнения операций с плавающей запятой с одинарной точностью, но и двойной (double precision floating point). На данный момент предполагается существование двух версий вычислительных блоков GCN, имеющих разный темп исполнения FP64 инструкций. Для старшего GPU темп выполнения составляет 1/4 от скорости FP32, а для младших чипов выбран темп 1/16, что вполне достаточно для сохранения совместимости, но не слишком усложняет недорогие решения. В итоге, Radeon HD 7970 способен на 947 миллиардов операций двойной точности в секунду - налицо очередное высочайшее достижение нового чипа AMD.

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

Из других нововведений, связанных с вычислительными возможностями, отметим полную поддержку ECC для DRAM и SRAM. С программной стороны важно, что Tahiti - это первый графический процессор с полной поддержкой новых версий API: OpenCL 1.2, DirectCompute 11.1 и C++ AMP и их возможностей. Например, OpenCL 1.2 позволяет объединять возможности нескольких вычислительных устройств в одно, и компания AMD уже выпустила соответствующую поддержку в виде AMD APP SDK 2.6 и драйвера Catalyst 11.12.