В отделе нейрокомпьютерных интерфейсов лаборатории «ФабЛаб КФУ» заработал компьютер, который позволяет в 50-400 раз быстрее обучать нейронную сеть. Это стало возможным после установки новейшей видеокарты GeForce RTX 3090 c GDDR6 24Гб. Она позволяет обрабатывать большие обучающие выборки благодаря наличию большого объема памяти и использованию технологии CUDA (Compute Unified Device Architecture) – платформы параллельных вычислений, разработанной NVIDIA для общих вычислений на графических процессорах (GPU). Таких CUDA-ядер на борту имеется 10500 штук.
Мощную видеокарту для лаборатории помог приобрести Крымский федеральный университет.
Видеокарта «взлетела» не сразу. Для начала стало ясно, что она не помещается ни в один из имеющихся в наличии корпусов. Был приобретен новый корпус Full Tower и отдельно блок питания на 750Вт. При попытке задействовать возможности CUDA в обучении нейронных сетей возникла следующая проблема – видеокарта слишком новая, фреймворки и библиотеки для искусственного интеллекта (DeepLearning4j, Theano, TensorFlow) её еще не поддерживают. Выход – скачать исходники фреймворков для ИИ и самостоятельно перекомпилировать их для поддержки видеокарты. Однако в процессе оказалось, что эти фреймворки ускоряются не только за счет ресурсов видеокарты, но и требуют поддержки современных инструкций процессора. Был приобретен современный процессор с поддержкой AVX, AVX2 команд – Inter Core I7-10700K, вместе с новой материнской платой и 32 Гб оперативной памяти DDR4.
И вот наконец видеокарта GeForce RTX 3090 смогла продемонстрировать свои возможности!
На первом графике видно, как задействуется память видеокарты и ресурсы GPU при обучении Convolution 1D — сверточной одномерной сети, обрабатывающей временные ряды — данные исследований ЭЭГ. Ранее обучение нейронной сети на этом датасете занимало около 4 часов. На новой видеокарте — порядка 3-4 секунд.
А вот задача посложнее: LSTM — рекуррентная сеть с долгой краткосрочной памятью. Те же данные считаются дольше — около 2 минут, и нагрузка на GPU выше:
Это открывает новые возможности в проектировании и разработке искусственных нейронных сетей. Ведь при внесении даже небольших изменений в конфигурацию сети, приходилось ждать долгие часы, чтобы понять, каким образом внесенные изменения отобразились на качестве распознавания признаков нейронной сетью. Теперь эта задача существенно облегчается!