Diesel: DSL для вычислений линейной алгебры и нейронных сетей на графических процессорах

Diesel: DSL for linear algebra and neural net computations on GPUs
Venmugil Elango, Norm Rubin, M. Ravishankar, Hariharan Sandanagobalane, Vinod Grover
2018-06-07

DSL Dieselгенерация кода для GPUлинейная алгебравычисления нейронных сетейполиэдральная компиляция
Представлен компилятор предметно-ориентированного языка Diesel для базовых вычислений линейной алгебры и нейронных сетей, который принимает входные выражения в интуитивно понятной форме и генерирует высокопроизводительный код для графических процессоров. Современный подход заключается в представлении нейронной сети в виде вычислительного направленного ациклического графа (DAG), где каждой вершине графа соответствует отдельная операция, например умножение матриц, после чего отдельные операции сопоставляются с вручную оптимизированными библиотечными функциями стандартных библиотек, таких как CuBLAS и CuDNN. Хотя этот метод использует доступный оптимизированный библиотечный код для достижения высокой производительности отдельных операций, он не позволяет выполнять оптимизацию между операциями. В отличие от этого, для вычисления, состоящего из нескольких операций, Diesel генерирует набор эффективных функций устройства, оптимизируя код для вычисления в целом с использованием методов полидеральной компиляции. Кроме того, в некоторых случаях для достижения оптимальной производительности требуется специализация кода под конкретные размеры задачи. В то время как стандартные библиотеки создаются для параметрических размеров задачи, задаваемых во время выполнения, Diesel принимает размеры задачи во время компиляции и генерирует специализированный код. Экспериментальные результаты показывают, что производительность кода, сгенерированного Diesel для отдельных операций, сопоставима с производительностью тщательно оптимизированных реализаций стандартных библиотек, тогда как для составных вычислений Diesel превосходит реализации, написанные вручную.
1
Diesel — компилятор предметно-ориентированного языка, генерирующий GPU-код для вычислений линейной алгебры и нейронных сетей из интуитивных выражений.
2
Diesel поддерживает специализацию под размеры задач, заданные во время компиляции, генерируя код для конкретных размеров вместо использования только параметрических библиотек.
3
Для составных вычислений код Diesel превосходит реализации, написанные вручную.
4
Для отдельных операций код, сгенерированный Diesel, достигает производительности, сопоставимой с высокооптимизированными реализациями CuBLAS и CuDNN.
5
В отличие от пооперационного использования библиотек, Diesel оптимизирует составные вычисления между несколькими операциями с помощью полипэдральной компиляции.

вычисления линейной алгебры и нейронных сетей на GPU

оптимизация производительности вычислений в целом посредством объединения операций и специализации кода на этапе компиляции для конкретных размеров задач

Publication Details
Publication Date
2018-06-07
Journal
Publisher
ISSN
Access Type
Author Information
Authors
Venmugil Elango
Norm Rubin
M. Ravishankar
Hariharan Sandanagobalane
Vinod Grover
Explore further
Open the scid.ai AI chat with a ready-made request: it will find papers on a similar topic and help build a literature review.
Find similar papers in the chat
Make a presentation
100%