В чем разница между ядрами CUDA и tensor?



Я совершенно новичок в терминах, связанных с вычислениями HPC, но я только что увидел, что EC2 выпустила свой новый тип экземпляра на AWS, который работает на новой Nvidia Tesla V100, которая имеет оба типа "ядер": ядра Cuda (5.120) и тензорные ядра (640). В чем разница между ними обоими?

569   3  

3 ответов:

Теперь только Тесла твердотельного накопителя V100, если и Титан в наличии ядер тензора. Оба графических процессора имеют 5120 ядер cuda, где каждое ядро может выполнять до 1 операции прецизионного умножения (например, в fp32: x += y * z) на 1 такт GPU (например, частота Tesla V100 PCIe составляет 1,38 Гц).

Каждое тензорное ядро выполняет операции над малыми матрицами размером 4х4. Каждое тензорное ядро может выполнять 1 операцию умножения матрицы на 1 такт GPU. Он умножает две матрицы fp16 4x4 и добавляет продукт умножения матрица fp32 (размер: 4x4) к аккумулятору (то есть также матрица fp32 4x4).

Это называется смешанной точностью, потому что входные матрицы-fp16, а результат умножения и накопитель-fp32 матрицы.

Вероятно, правильное название было бы просто 4x4 matrix Core, однако маркетинговая команда NVIDIA решила использовать "тензорные ядра".

GPU всегда были хороши для машинного обучения. Ядра GPU изначально были разработаны для физических и графических вычислений, которые включают матричные операции. Общие вычислительные задачи не требуют большого количества матричных операций,поэтому процессоры работают намного медленнее. Физика и графика также гораздо легче распараллеливаются, чем общие вычислительные задачи, что приводит к высокому количеству ядер.

Из-за матричного тяжелого характера машинного обучения (нейронных сетей), GPU были отлично подходят. Тензорные ядра они просто более специализированы на типах вычислений, участвующих в программном обеспечении машинного обучения (таких как Tensorflow).

Nvidia написала подробный блогздесь , в котором гораздо более подробно рассказывается о том, как работают тензорные ядра и улучшения преформанса по сравнению с ядрами CUDA.

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

Вот почему для моделей машинного обучения Тензорные ядра более эффективны при снижении затрат без существенного изменения выходных данных. Сама

Google использует обработку тензора единиц для Гугл Translate.

Comments

    Ничего не найдено.