错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

SIMD-Vektor-Crunching

  • Tobias Weinzierl

摘要

Vektorrechnung kann als Rechnen mit replizierten ALUs gelesen werden. Um von dieser Hardware-Parallelität zu profitieren, müssen wir unsere Berechnungen als Operationssequenzen über kleinen Vektoren formulieren. Wir diskutieren, wie gut geeignete Schleifen aussehen müssen, die Vektoreinheiten ausnutzen können, wir diskutieren das Verhältnis zwischen Schleifen mit Vektorisierung und teilweiser Schleifenentfaltung, und wir diskutieren den Unterschied zwischen horizontaler und vertikaler Vektorisierung. Diese Erkenntnisse ermöglichen es uns, Realisierungsvarianten der Vektorisierung auf dem Chip zu untersuchen: Werden breite Vektorregister verwendet, oder führen wir Hardware-Threads mit Lockstepping ein, wie erleichtern Maskierung und Blending die effiziente Handhabung leichter Thread-Divergenz, und warum erfordert nicht-kontinuierlicher Datenzugriff, dass wir Registerinhalte sammeln und verteilen?