Лабораторія досліджень штучного інтелекту OpenAI два роки тому в науковій статті представила Triton, спеціалізований мова програмування, який, за її заявою, повинен дозволити розробникам з легкістю створювати високопродуктивні алгоритми машинного навчання.
Переважна більшість корпоративних моделей ІІ працюють на графічних процесорах Nvidia і створюються з використанням ПЗ CUDA цієї компанії. Даний фреймворк надає базові програмні блоки для виконання ІІ-обчислень за допомогою GPU.
Однак використання CUDA для максимального збільшення продуктивності ІІ вимагає складної і детальної оптимізації коду, яку складно реалізувати навіть досвідченим розробникам.
Цю проблему OpenAI вирішує за допомогою Triton. Відносна простота нової мови дозволить командам розробників ПЗ створювати більш ефективні алгоритми навіть не маючи великого досвіду програмування на CUDA.
Triton покращує продуктивність ІІ шляхом оптимізації трьох основних етапів процесу обробки даних алгоритмом машинного навчання:
1.Переміщення даних між DRAM і SRAM графічного процесора. Чим швидше вони можуть передаватися між цими двома компонентами пам'яті, тим швидше працюють алгоритми машинного навчання. Triton автоматично об'єднує дані, що переміщуються з DRAM в SRAM, в більш великі блоки, тим самим заощаджуючи час розробників.
2. Розподіл вхідних блоків даних за сегментами SRAM так, щоб їх можна було аналізувати як можна швидше. Triton тут знижує ймовірність так званих конфліктів банків пам'яті - спроба двох програм записати дані в один і той же сегмент пам'яті. Ці конфлікти затримують обчислення до тих пір, поки вони не будуть вирішені, сповільнюючи роботу алгоритмів ІІ.
3. Третя і остання задача, яку частково допомагає автоматизувати Triton, це розподіл обчислень по декількох ядер CUDA для одночасного паралельного виконання.