Какие видеокарты поддерживают cuda

Обновлено: 05.07.2024

Этот пост логически принадлежит гайду по CUDA, но из-за ограничений ЖЖ на максимальный размер поста я вынужден был разбить гайд на несколько частей: 1) Зачем нужны GPU? Зачем нужна CUDA?, 2) Программная модель CUDA, 3) Хардварная реализация CUDA, 4) CUDA-совместимые видеокарты (сейчас вы читаете эту часть).

Disclaimer.
1. Здесь будут затронуты лишь архитектура и спецификации устройств, имеющих compute capability 1.0-1.3, а именно: 1) десктопных карточек GeForce 8, GeForce 9, GeForce 1xx и GeForce 2xx, 2) их мобильных аналогов, 3) их профессиональных или, как сейчас модно выражаться, HPC аналогов семейств Quadro и Tesla. Более подробно читаем в CUDA Programming Guide 2.3 (Appendix A. Technical Specifications).
2. Соответственно, инфа в этом гайде неприменима к: 1) видеокартам GeForce 7 и ниже (у них кардинально иная микроархитектура), 2) видеокартам ATI/AMD (несмотря на сходства высокоуровневой модели программирования, на низком уровне эти GPU очень сильно отличаются от решений NVIDIA), 3) видеокартам GeForce 300 и Tesla 2xxx (они построены на несколько отличной архитектуре, известной под кодовым названием Fermi; о ней поговорим как-нибудь в другой раз).
3. В этом посте будет очень сжатый саммари (минимум воды и ноль картинго), поэтому для более мягкого погружения в архитектуру CUDA рекомендую ознакомиться с тремя презентациями на эту тему: общая инфа про архитектуре GPU, описание CUDA - много топиков сразу, но, на удивление, с хорошей детализацией, оптимизация алгоритмов для CUDA - там все последовательно, с необходимой для фтыкания с нуля избыточностью информации и с пачкой картинго. Не стоит забывать и про референсные документы, но они будут потяжелее для восприятия: CUDA Programming Guide 2.3, Best Practices - CUDA 2.3, CUDA PTX ISA 1.4.
4. Здесь не будет информации о результатах на реальных задачах, ибо они индивидуальны для каждого алгоритма.
5. Наконец, этот гайд - work in progress, поэтому что-то в нем может быть неточным, а что-то тупо неправильным. Со временем гайд будет расширяться и дополняться. Замечания и дополнения по делу всяко приветствуются. Вопросы о непонятных местах приветствуются еще больше (разрешены анонимные каменты, такчт задать вопрос очень легко - а мне ответить будет только в радость)!

Классификация

На сегодняшний момент к видеокартам, поддерживающим CUDA, относятся: 1) десктопные карточки GeForce 8, GeForce 9, GeForce 1xx и GeForce 2xx, 2) их мобильные аналоги, 3) их профессиональные аналоги семейств Quadro и Tesla.

CUDA-совместимые видеокарты во многом похожи друг на друга. Во-первых, программная модель одинакова для всех таких устройств. Кроме того, с момента представления первого CUDA GPU и по сей день не менялись размеры шарной памяти (16 КБ) и кэшей на SM (8 КБ для констант и 8 КБ для текстур), а также константы хардвары (типо SM = 8 SP, варп = 32 треда и так далее).

Различия между видеокартами CUDA делятся на две категории - качественные и количественные. Качественные различия определяются параметром Compute Capability, который может принимать одно из четырех значений: 1.0, 1.1, 1.2 и 1.3 (см. ниже). Количественные различия - это: 1) количество SM, 2) частота, на которой они работают, 3) размер видеопамяти, 4) частота видеопамяти, 5) ширина шины видеопамяти (тут все изменяется в широких пределах: от кастратов с 1 SM до монстров с 4x30 SM, ну и так далее).

Касательно Compute Capability (детально описанного в CUDA Programming Guide 2.3 (Appendix A. Technical Specifications)) все гораздо проще, чем в теории. CUDA-видеокарты делятся на две категории - с GPU на ядре GT200 (CC 1.3) и все остальные (CC 1.0 и 1.1). Отличия между CC 1.3 и CC 1.0 следующие: 1) каждый SM имеет в два раза больше регистров (16384 вместо 8192), 2) каждый SM имеет на треть увеличенный максимум одновременно выполняющихся варпов (32 вместо 24), 3) нативно поддерживается double-precision FP (в девайсах более низкой cc double-precision эмулируется несколькими single-precision операциями), 4) поддерживаются атомарные операции над 32- и 64-битными словами, 5) условия на коалесцирование запросов к памяти сильно упрощаются. CC 1.1 от CC 1.0 отличается незначительно - всего лишь поддержкой атомарных операций над 32-битными словами в глобальной памяти.

State of the art

Гигантское семейство GPU CUDA (которому уже более трех лет) венчается ядром GT200 (внимание, маркетинг! не все видеокарты GeForce 2xx построены на ядре GT200!). На основе этого GPU и его обрезков собраны потребительские видеокарты GeForce GTX 260-295 и high-performance решения Tesla 10xx.

Линейка high-end видеокарт на ядре GT200 открывается десктопной карточкой GTX 285 (видеокарты GTX 260 и GTX 260 Core 216 являются ее обрезками - т.е. содержат несколько бракованных и поэтому отключенных SM) и ее HPC-клоном Tesla S1050. Дальше GPU уже не улучшаются, а размножаются - GTX 295 представляет собой два GTX 285 на одной плате, а Tesla S1070 содержит целых четыре GTX 285.

Полноценное ядро GT200 имеет 30 SM, соответствующих compute capability 1.3 (см. выше), которые работают на частоте 1.3-1.5 Ghz (частоты варьируются в зависимости от конкретной модели). Частоты, на которых работает память в рассматриваемых устройствах, очень сильно отличаются: у C1060/S1070 они на уровне 1.6 Ghz (x512 бит шина = 102 GB/s), у GeForce 285 - 2.3-2.5 Ghz (x512 бит шина = 147.2-160 GB/s), у GeForce 295 - 2.0 Ghz (x512 бит шина = 128 GB/s).

Разработчики, исследователи и изобретатели во всех отраслях используют программирование на GPU для ускорения своих приложений. Разработка таких приложений требует надежной среды программирования с высокооптимизированными библиотеками для конкретных областей. NVIDIA CUDA-X создана на основе CUDA® и представляет собой набор библиотек, инструментов и технологий, которые обеспечивают значительно более высокую производительность по сравнению с другими решениями во всех отраслях: от ИИ до НРС.

Ускорение современных приложений

Библиотеки CUDA-X AI и CUDA-X HPC эффективно используют мощность графических процессоров NVIDIA с тензорными ядрами для ускорения разработки и развертывания приложений в различных отраслях.

Cuda-X AI

Cuda-X HPC

Современные технологии ИИ способны кардинально изменить работы во многих отраслях, но применение их возможностей представляет собой сложную задачу. Разработка приложений на базе ИИ осуществляется в несколько этапов: обработка данных, конструирование признаков, машинное обучение, верификация и развертывание. Каждый шаг включает в себя обработку крупных массивов данных и осуществление больших объемов вычислений. CUDA-X AI предоставляет инструменты и технологии, необходимые решения этой задачи.

Приложения для НРС используются во многих отраслях: от гидродинамики до моделирования погоды. CUDA-X HPC – это набор библиотек, инструментов, компиляторов и API, с помощью которых разработчики решают самые сложные в мире задачи. CUDA-X HPC включает в себя настроенные ядра для высокопроизводительных вычислений (HPC). Библиотеки GPU-ускорения для линейной алгербры, параллельных алгоритмов, обработки сигналов и изображений создают основу для приложений, требующих большого объема вычислений, в таких областях, как вычислительная физика, химия, молекулярная динамика и сейсмические исследования.

Расширенная доступность

Платформа CUDA-X имеет расширенную экосистему и доступна для использования. Библиотеки программного ускорения являются частью основных облачных платформ, в том числе AWS, Microsoft Azure и Google Cloud. Фрагменты кода или контейнеризированные программные стеки можно бесплатно скачать из репозитория NGC. С помощью GPU NVIDIA библиотеки CUDA-X можно разворачивать на любых устройствах: ПК, рабочих станциях, серверах, суперкомпьютерах, облачных платформах и IoT-устройствах.

Более миллиона разработчиков используют CUDA-X для повышения продуктивности благодаря постоянному росту производительности приложений. Если вы создаете новое приложение или стремитесь ускорить его работу, CUDA-X обеспечивает самый эффективный способ.

Используйте мощность GPU для приложений

Узнайте, как NVIDIA CUDA-X и в частности библиотеки GPU-ускорения трансформируют рабочие процессы в отраслях.

Добрый день! Никогда для видеокарт ничего не писал, но пришла мне в голову интересная идея которую хочу реализовать и для которой очень бы подошла CUDA, но я совершенно не разбираюсь в современном рынке видеокарт и прошу у сообщества совета - какую видеокарту (чип и производитель) нужно брать в 2020 что бы программировать для CUDA и не разориться? 10тр - это разумный предел цены, теслу брать совсем не хочется, играть на ПК не планирую.

10тр - это разумный предел цены

Это даже не неразумный минимум. Вроде начальным уровнем для простеньких расчётов считается 2060, а это сейчас тыщ тридцать.

10тр - это разумный предел цены

Я надеюсь это шутка. nvidia стоит > 600$


Когда-то 3DFX Voodoo была создана с целью сделать НЕДОРОГОЕ 3D для домашнего компьютера. Потому что аппаратные графические ускорители для IBM PC к этому моменту уже были, но предназначались для CAD, потому что геймер не будет тратить $2000 на игрушки. А теперь вон минималка $600. Куда мы катимся.

зачем тебе cuda, когда в 2020 есть вулкан, который анонсирован заменой в том числе opencl?


Ну смотря что надо. Судя по вопросу и бюджету, ничего особо умного, и хватит на поиграться.

Ну какую-то 1050 TI

fornlr ★★★★★ ( 19.06.20 14:17:28 )
Последнее исправление: fornlr 19.06.20 14:18:14 (всего исправлений: 1)


какую видеокарту (чип и производитель) нужно брать в 2020 что бы программировать для CUDA и не разориться

Младшую модель последней линейки. Сейчас это 2060, но лучше жди осени

доллар тоже подвержен инфляции, если ты не знал. впрочем, что ещё можно было ожидать от зенитара

На поиграть в CUDA можешь арендовать её в облаке.

Вроде как 1060 в версии для майнеров (в смысле без видеоразъёмов вообще) примерно 10к стоило, но это для совсем любителей странного.


умножай старые цены на 1.6


Voodoo на старте стоила $299. Умножил. $478,4. Позже Voodoo 2 стоила значительно дешевле.

msrp RTX 2070 Super - $499


Другое дело. А то я поверил комменту выше про $600 минимум

На какую хватает ту и покупай.

Чтобы использовать последний CUDA SDK достаточно видеокарты поддерживающей sm_35.

Но если хочется чтобы поддерживалось как можно дольше, то бери GTX 1650

GTK 1650 это карта того же поколения что и GeForce RTX 2080 Ti. Так что поддержки они лишатся в одно и тоже время :)

google://аренда gpu уже предлагали? Всего за лям в год.

Спасибо большое! Самый полезный совет.

Только сегодня смотрел на Амазоне 2060 от 350 до 400 долларов.

Если надо, то разработчик купит, а хомячки пусть консоли по 500 берут, они долго служат и апдейтятся.

Тебе нужна не CUDA, а OpenCL. CUDA - проклятая проприетарщина которой не место на линуксе, а OpenCL - замечательный открытый опенсорсный стандарт! Соответственно, ты можешь спокойно брать видеокарту от AMD, тем более что AMD всегда давала больше производительности на рубль чем хитрый китаец из клуба любителей кожевенного ремесла

ему нуже vulkan, тк opencl планируют закопать в пользу vulkan

Вроде у старых gpu таких как 1050/1060 и т.д. операции над INT16 и FP16 очень дорогие, выполняются в два раза дольше чем против FP32. В новых GPU использование числе половинчатой точности дает прирост производительности. FP16 теперь очень популярно из-за нейросеток.

Потому поддерживаю GTX1650, но я не кодил прод видокарту, так что мое мнение это мнение профана.

NVIDIA Jetson Nano Developer Kit уже предлагали?

говно - 874–1410 single precision гфлопс, когда в RTX 2060 Super 6400-7 180


Когда-то 3DFX Voodoo была создана с целью сделать НЕДОРОГОЕ 3D для домашнего компьютера. Потому что аппаратные графические ускорители для IBM PC к этому моменту уже были, но предназначались для CAD, потому что геймер не будет тратить $2000 на игрушки. А теперь вон минималка $600. Куда мы катимся


она у гребанных барыг с авито самая дешевая 22.000. тогда как новая 24 стоит. я помню свою видюху хотел продать, в личку приполз барыга говорит за 70% от названной цены куплю, чтобы потом перепродать за ту же цену


только вот софта под opencl меньше

Если к 2020 в софт до сих пор не соизволили добавить поддержку OpenCL, то такой софт не нужен.

хорошо, что ты согласен с тем, что файрфокс не нужен

Посмотрите цена в адекватных магазинах-площадках. Какой-то средний сегмент карт, средний житель золотого миллиарда, может себе позволить. Конечно он будет давить жабу и бурчать по поводу охреневания вендоров, но может себе позволить.

А когда по ареалу месячная зарплата в 20тыр, и карта в 20 тыр. То обычно такое баловство не берут. Но тут всё вверх ногами, жить в коммунлаке, но купить б/у мерцедец за 1.5 ляма в кредит.


Никогда для видеокарт ничего не писал

какую видеокарту (чип и производитель) нужно брать в 2020 что бы программировать для CUDA и не разориться?

Если вообще новичок, то проще всего взять самую дешёвую и простую, сиречь 1030. А то вдруг не «зайдёт», и карта будет потом пылиться в углу, где кот испражняется?

А вот если разберётесь, вам понравится, тогда можно и какой-нибудь «б/у» GTX Titan взять. Или 2060 Super, если очень понравится.

Korchevatel ★★★★★ ( 20.06.20 22:16:55 )
Последнее исправление: Korchevatel 20.06.20 22:17:25 (всего исправлений: 1)


Так он и не про игрушки.


TI идёт лесом, она для геймеров (при этом глупеньких или очень ленивых, которые не могут продать старую видяшку и быть в плюсе сидя на новых видяхах, терпя вместо этого старую TI 2 поколения), а не для девелоперов и исследователей. Девелоперу срать на долгую поддержку, нужны свежие фичи, лучше было в момент выхода купить 1060 и потом 2060 (в момент выхода), чем купить 1050TI чтобы быть в тренде и соображать куда крутится рынок и что нынче в моде. Вот сразу видно что ты виндузятный геймер и ни разу не девелопер. Ну а для серьёзных дядей, которым надо много считать, есть серия Quadro.

Добрый день! Никогда для видеокарт ничего не писал, но пришла мне в голову интересная идея которую хочу реализовать и для которой очень бы подошла CUDA, но я совершенно не разбираюсь в современном рынке видеокарт и прошу у сообщества совета - какую видеокарту (чип и производитель) нужно брать в 2020 что бы программировать для CUDA и не разориться? 10тр - это разумный предел цены, теслу брать совсем не хочется, играть на ПК не планирую.

10тр - это разумный предел цены

Это даже не неразумный минимум. Вроде начальным уровнем для простеньких расчётов считается 2060, а это сейчас тыщ тридцать.

10тр - это разумный предел цены

Я надеюсь это шутка. nvidia стоит > 600$


Когда-то 3DFX Voodoo была создана с целью сделать НЕДОРОГОЕ 3D для домашнего компьютера. Потому что аппаратные графические ускорители для IBM PC к этому моменту уже были, но предназначались для CAD, потому что геймер не будет тратить $2000 на игрушки. А теперь вон минималка $600. Куда мы катимся.

зачем тебе cuda, когда в 2020 есть вулкан, который анонсирован заменой в том числе opencl?


Ну смотря что надо. Судя по вопросу и бюджету, ничего особо умного, и хватит на поиграться.

Ну какую-то 1050 TI

fornlr ★★★★★ ( 19.06.20 14:17:28 )
Последнее исправление: fornlr 19.06.20 14:18:14 (всего исправлений: 1)


какую видеокарту (чип и производитель) нужно брать в 2020 что бы программировать для CUDA и не разориться

Младшую модель последней линейки. Сейчас это 2060, но лучше жди осени

доллар тоже подвержен инфляции, если ты не знал. впрочем, что ещё можно было ожидать от зенитара

На поиграть в CUDA можешь арендовать её в облаке.

Вроде как 1060 в версии для майнеров (в смысле без видеоразъёмов вообще) примерно 10к стоило, но это для совсем любителей странного.


умножай старые цены на 1.6


Voodoo на старте стоила $299. Умножил. $478,4. Позже Voodoo 2 стоила значительно дешевле.

msrp RTX 2070 Super - $499


Другое дело. А то я поверил комменту выше про $600 минимум

На какую хватает ту и покупай.

Чтобы использовать последний CUDA SDK достаточно видеокарты поддерживающей sm_35.

Но если хочется чтобы поддерживалось как можно дольше, то бери GTX 1650

GTK 1650 это карта того же поколения что и GeForce RTX 2080 Ti. Так что поддержки они лишатся в одно и тоже время :)

google://аренда gpu уже предлагали? Всего за лям в год.

Спасибо большое! Самый полезный совет.

Только сегодня смотрел на Амазоне 2060 от 350 до 400 долларов.

Если надо, то разработчик купит, а хомячки пусть консоли по 500 берут, они долго служат и апдейтятся.

Тебе нужна не CUDA, а OpenCL. CUDA - проклятая проприетарщина которой не место на линуксе, а OpenCL - замечательный открытый опенсорсный стандарт! Соответственно, ты можешь спокойно брать видеокарту от AMD, тем более что AMD всегда давала больше производительности на рубль чем хитрый китаец из клуба любителей кожевенного ремесла

ему нуже vulkan, тк opencl планируют закопать в пользу vulkan

Вроде у старых gpu таких как 1050/1060 и т.д. операции над INT16 и FP16 очень дорогие, выполняются в два раза дольше чем против FP32. В новых GPU использование числе половинчатой точности дает прирост производительности. FP16 теперь очень популярно из-за нейросеток.

Потому поддерживаю GTX1650, но я не кодил прод видокарту, так что мое мнение это мнение профана.

NVIDIA Jetson Nano Developer Kit уже предлагали?

говно - 874–1410 single precision гфлопс, когда в RTX 2060 Super 6400-7 180


Когда-то 3DFX Voodoo была создана с целью сделать НЕДОРОГОЕ 3D для домашнего компьютера. Потому что аппаратные графические ускорители для IBM PC к этому моменту уже были, но предназначались для CAD, потому что геймер не будет тратить $2000 на игрушки. А теперь вон минималка $600. Куда мы катимся


она у гребанных барыг с авито самая дешевая 22.000. тогда как новая 24 стоит. я помню свою видюху хотел продать, в личку приполз барыга говорит за 70% от названной цены куплю, чтобы потом перепродать за ту же цену


только вот софта под opencl меньше

Если к 2020 в софт до сих пор не соизволили добавить поддержку OpenCL, то такой софт не нужен.

хорошо, что ты согласен с тем, что файрфокс не нужен

Посмотрите цена в адекватных магазинах-площадках. Какой-то средний сегмент карт, средний житель золотого миллиарда, может себе позволить. Конечно он будет давить жабу и бурчать по поводу охреневания вендоров, но может себе позволить.

А когда по ареалу месячная зарплата в 20тыр, и карта в 20 тыр. То обычно такое баловство не берут. Но тут всё вверх ногами, жить в коммунлаке, но купить б/у мерцедец за 1.5 ляма в кредит.


Никогда для видеокарт ничего не писал

какую видеокарту (чип и производитель) нужно брать в 2020 что бы программировать для CUDA и не разориться?

Если вообще новичок, то проще всего взять самую дешёвую и простую, сиречь 1030. А то вдруг не «зайдёт», и карта будет потом пылиться в углу, где кот испражняется?

А вот если разберётесь, вам понравится, тогда можно и какой-нибудь «б/у» GTX Titan взять. Или 2060 Super, если очень понравится.

Korchevatel ★★★★★ ( 20.06.20 22:16:55 )
Последнее исправление: Korchevatel 20.06.20 22:17:25 (всего исправлений: 1)


Так он и не про игрушки.


TI идёт лесом, она для геймеров (при этом глупеньких или очень ленивых, которые не могут продать старую видяшку и быть в плюсе сидя на новых видяхах, терпя вместо этого старую TI 2 поколения), а не для девелоперов и исследователей. Девелоперу срать на долгую поддержку, нужны свежие фичи, лучше было в момент выхода купить 1060 и потом 2060 (в момент выхода), чем купить 1050TI чтобы быть в тренде и соображать куда крутится рынок и что нынче в моде. Вот сразу видно что ты виндузятный геймер и ни разу не девелопер. Ну а для серьёзных дядей, которым надо много считать, есть серия Quadro.

Читайте также: