Hearted Youtube comments on PRO Hi-Tech (@prohitec) channel.
-
684
-
681
-
675
-
669
-
Всем привет! Я тот самый инженер NVIDIA из видосика, жутко нервничаю, когда камера снимает второй подбородок и нос снизу, еще и в горле пересохло, так что не обессудьте :)
Сразу уточню, вопросы до момента съемки я не видел, отвечать пришлось на ходу, получилось сумбурно, поэтому попытаюсь дополнить хотя бы в письменном виде.
Итак, первый вопрос - технология CUDA как нечто революционное, правда или маркетинг?
CUDA - первый С подобный интерфейс для вычислений общего назначения на ГПУ. Был ли подобный АПИ до CUDA?, - нет. Был Brook, но это исследовательский язык, который являлся оберткой вокруг графического конвейера со всеми вытекающими сложностями (потоки могут взаимодействовать только через внешнюю память, что медленно, нет реализаций многих общепринятых в программировании конструкций), из-за чего о Бруке знали преимущественно в академических кругах, сколь-либо широкого распространения и поддержки язык не получил.
Когда в 2007-ом появилась CUDA - это был прорыв (выч. шейдеры DirectX и OpenCL появились только через пару лет). CUDA - это программно-аппаратный комплекс, поэтому в G80 с первой на ПК унифицированной архитектурой впервые добавили специальный режим для вычислений, не требующий прогона данных через графический конвейер, а также разделяемую память, что значительно расширило сферу применения языка и число приложений, которые могли бы выиграть от применения вычислений общего назначения (это аппаратная часть CUDA). Синтаксис языка был заимствован у привычного многим Си + был добавлен ряд необходимых для параллельных вычислений и работы с разделяемой начиповой памятью конструкций.
Всего за пару лет CUDA стала ведущей платформой для разработки и интеграции ускоренных на GPU приложений в HPC, ЦОД и профессиональных решениях. Произошло это благодаря знакомому и понятному синтаксису языка, активному развитию со стороны NVIDIA - выпуску библиотек для всех сфер (cuBLAS, Thrust, NCCL, nvGraph и т.д.), регулярному появлению новых версий CUDA (последняя анонсированная версия на текущий момент - 10 по нумерации) с привычными для программистов конструкциями (атомарные операции, шаблоны, виртуальная память, примитивы синхронизации между потоками и многие-многие вещи, своевременно добавляемые в АПИ по просьбам программистов), постоянно растущего сообщества разработчиков под CUDA, которые тоже активно создают собственные библиотеки (библиотеки операций линейной алгебры, компьютерного зрения и т.д.). Каждый год в нескольких странах для разработчиков приложений на GPU проводятся конференции GTС и посещаемость постоянно растет, для обучения новых специалистов ведущие институты имеют соответствующие курсы, тогда как NVIDIA постоянно упрощает программирование под GPU, поддерживая новые стандарты (CUDA 9 поддерживает уже C++14 фичи) и улучшая архитектуру (быстрые L1 кэши в Вольте, потоки в варпе теперь могут ждать друг-дружку). Все эти функции рано или поздно оказываются в вычислительных шейдерах DirectX и OpenCL, что позволяет упростить разработку и под эти АПИ. Архитектурные изменения, такие как быстрый L1 кэш большого объема в Вольте, дают о себе знать и в игровых приложениях. Фичи CUDA не расходуют площадь чипа почем зря, почти все архитектурные улучшения увеличивают и игровую производительность.
Таким образом, CUDA - действительно лидирующий АПИ, наиболее простой для разработки и с функциями ушедшими на несколько лет вперед относительно конкурирующих платформ. Основные сферы применения CUDA - это HPC, ЦОД и профессиональные решения, в этих секторах лидерство CUDA никуда не девалось, пардон за каламбур:P
Касательно игровых приложений - это далеко не основное применение CUDA. Разработчики игр предпочитают использовать максимально кросс-платформенные решения вроде вычислительных шейдеров DirectX по понятным причинам, безотносительно преимуществ CUDA API. Если почитать доклады с Siggraph, то разработчики активно ратуют за доведение функционала выч. шейдеров до уровня CUDA 9 для увеличения продуктивности.
Если такой формат интересен, могу ответить более развернуто и на остальные вопросы.
667
-
664
-
661
-
653
-
647
-
641
-
636
-
623
-
621
-
620
-
619
-
614
-
606
-
603
-
595
-
582
-
580
-
577
-
577
-
566
-
561
-
554
-
552
-
546
-
545
-
541
-
540
-
536
-
525
-
525
-
522
-
521
-
520
-
509
-
508
-
495
-
490
-
482
-
481
-
478
-
471
-
462
-
460
-
454
-
453
-
453