Всем привет, хотел поднять такую тему, сейчас на работе стартует тема, связанная с нейронными сетями. Я программист С/C++, начал гуглить, по факту в интернете все пишут что нужно юзать связку С++, CUDA и cuDNN от Nvidia. Иными словами писать с использованием видеокарт, только сами знаете цены на видеокарты, вот я и хотел узнать ваше мнение коллеги, что лучше использовать в программировании(языки, библиотеки) и какое оборудование нужно, просить все же у руководства видеокарты?
P.S. Всем заранее спасибо, мнения принимаются все!))
Смотря что делать надо. Видеокарты для ускорения используют, но конечно простые проекты можно и без них. Или например сервер с видеокартами арендовать.
Это в магазинах для домашних юзеров, а оптом, В2В и т.д. вроде можно и норм цены найти. Ну и проф. видеокарты типа Quadro вроде это не затронуло.
Да по сути аналитика входящих данных, там коды ошибок, данные с устройств и т.д. По сути конечно ничего особенного, по крайней мере пока, просто надо что бы на выходе была стабильная работа, вот и думаю если просто на процессорах нейронную сеть крутить, нормально будет? А то в интернете прям ужасы пишут, чуть ли не десятки раз видеокарты быстрее, а процессоры тормозят.
Да это понятно, а сложно если что потом адаптировать для графических ускорителей проект или не особо, просто скажем так, пока деньги компании сберегу, а потом если что и переехать?
Если использовать библиотеки типа Tensorflow, то включить использование GPU по идее должно быть не сложно, с минимальными изменениями кода или вообще без них. Если самому что-то более низкоуровневое писать, то наверно сложнее.
Нейронные сети нынче в тренде.
Сложность НС в их настройке наладки. Один пуск длится минуты десятки минут. Разумеется тут кто угодно затребует ускоритель. Более того после оптимизации НС её обучают на полном датасета. И тут уже арендуют сервер с видеокартой либо нейросетевым ускорителем. На 1-2 месяца.
А вот оптимизацию структуры НС как правило делают на выжимке из датасета.
Объем подбирают так, что бы было комфортно программисту. Тут большинство предпочитают видеокарты так как они в 10 раз быстрее чем ЦП.
Cuda работает на Nvidia и это дефакто стандарт для GpGPU. Ati с OpenCL где то на задворках истории.
На CUDA никто не пишет. Все используют фреймворки.
Tensorflow это низкоуровневая библиотека её тоже не используют. А используют обертки keras.
Так как тут обертки на обёртке то переключение с ЦП на ГПУ происходит в лёгкую.
По мимо фремворков народ используют предобученные НС deepPavlov, Bart, GPT-3 к примеру от сбера.
Тут ещё популярен питон вместо си++. И библиотеки типа PyTorch.
Спасибо большое за развернутый ответ, я так понял, что нужно юзать питон с фрейверком, но такой вопрос, разве это не сказывается на производительности?