Hearted Youtube comments on PRO Hi-Tech (@prohitec) channel.

  1. 684
  2. 681
  3. 675
  4. 669
  5. Всем привет! Я тот самый инженер 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
  6. 664
  7. 661
  8. 653
  9. 647
  10. 641
  11. 636
  12. 623
  13. 621
  14. 620
  15. 619
  16. 614
  17. 606
  18. 603
  19. 595
  20. 582
  21. 580
  22. 577
  23. 577
  24. 566
  25. 561
  26. 554
  27. 552
  28. 546
  29. 545
  30. 541
  31. 540
  32. 536
  33. 525
  34. 525
  35. 522
  36. 521
  37. 520
  38. 509
  39. 508
  40. 495
  41. 490
  42. 482
  43. 481
  44. 478
  45. 471
  46. 462
  47. 460
  48. 454
  49. 453
  50. 453