В сфере искусственного интеллекта, особенно машинного обучения и нейронных сетей, за последние несколько лет наблюдался беспрецедентный рост. В основе этой эволюции лежит синергия между алгоритмами и оборудованием, которое их поддерживает. NVIDIA, имя, синоним графических процессоров (GPU), стало ключевым игроком на этой арене. Путь компании в анналы оптимизации машинного обучения одновременно увлекателен и полон проблем.

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

Одной из важнейших оптимизаций машинного обучения на графических процессорах NVIDIA является разработка платформы CUDA. CUDA, или унифицированная архитектура вычислительных устройств, представляет собой платформу параллельных вычислений и модель интерфейса прикладного программирования (API). С помощью CUDA разработчики могли использовать всю мощь графических процессоров NVIDIA для обработки общего назначения (подход, известный как GPGPU, вычисления общего назначения на графических процессорах). Способность обрабатывать огромные массивы одновременных потоков делает графические процессоры особенно подходящими для распараллеливаемого характера вычислений нейронных сетей. Например, при обучении нейронной сети вычисления каждого нейрона могут обрабатываться одновременно, а не последовательно, что значительно ускоряет процесс обучения.

Тензорные ядра, представленные в архитектуре NVIDIA Volta, представляют собой еще один значительный скачок. Эти ядра предназначены специально для операций с матрицами — основополагающим элементом алгоритмов машинного обучения. Вместо обработки вычислений по отдельности тензорные ядра могут обрабатывать большие их блоки одновременно, что еще больше ускоряет обучение нейронной сети и вывод.