Для чего нужны cuda ядра
Что такое CUDA ядра в видеокарте
Уже долгое время технология CUDA является одной из главных особенностей видеокарт GeForce. Однако не все понимают, что это за технология и как она влияет на игры.
В этой статье расскажу и дам короткое объяснение. Так же рассмотрим и другие вопросы, которые могут возникнуть у пользователей.
Обработка графики требует одновременного выполнения сложных вычислений, именно одновременного. Поэтому в видеокартах и реализовано такое огромное количество ядер CUDA. Учитывая факт оптимизации видеокарт специально для работы с графикой, их ядра намного меньше и проще, чем у более универсальных ядер центрального процессора.
Обе технологии являются собственной разработкой компаний и в них есть различия, однако для обычного пользователя большой разницы между ними нет.
Это достаточно сложный вопрос, ответ на который не стоит искать в сухих цифрах характеристик графического адаптера. Количество не даст никаких представлений о производительности.
Многие другие характеристики, например, объем видеопамяти, поколение и скорости шины видеокарты намного важнее, для пользователя, чем данные о ядрах CUDA. Так же не стоит забывать об оптимизации в самих играх.
Лучшим способом выбора графического адаптера является все таки просмотр тестов производительности, просмотр отзывов людей, которые уже пользуются конкретной видеокартой, анализ рынка в целом, чтобы понять что выбирают покупатели. И конечно подбор по системным требованиям и fps под конкретную игру, в которую вы хотите зарубиться
Надеюсь, что помог ответить на вопрос о назначении ядер CUDA и развеять все сомнения и заблуждения о данной технологии. Теперь вы знаете что они делают и насколько важны.
Нужны ли графические ядра Nvidia CUDA для игр?
Ядра CUDA являются эквивалентом процессорных ядер Nvidia. Они оптимизированы для одновременного выполнения большого количества вычислений, что очень важно для современной графики. Естественно, на графические настройки больше всего повлияло количество ядер CUDA в видеокарте, и они требуют больше всего от графического процессора, то есть теней и освещения, среди прочего.
CUDA долгое время была одной из самых выдающихся записей в спецификациях любой видеокарты GeForce. Однако не все до конца понимают, что такое ядра CUDA и что конкретно они означают для игр.
В этой статье дан краткий и простой ответ на этот вопрос. Кроме того, мы кратко рассмотрим некоторые другие связанные вопросы, которые могут возникнуть у некоторых пользователей.
Что такое ядра видеокарты CUDA?
CUDA является аббревиатурой от одной из запатентованных технологий Nvidia: Compute Unified Device Architecture. Его цель? Эффективные параллельные вычисления.
Одиночное ядро CUDA аналогично ядру ЦП, основное отличие в том, что оно менее изощренное, но реализовано в большем количестве. Обычный игровой процессор имеет от 2 до 16 ядер, но количество ядер CUDA исчисляется сотнями, даже в самых низких современных видеокартах Nvidia GeForce. Между тем, у высококлассных карт сейчас их тысячи.
Что делают ядра CUDA в играх?
Обработка графики требует одновременного выполнения множества сложных вычислений, поэтому такое огромное количество ядер CUDA реализовано в видеокартах. И учитывая, как графические процессоры разрабатываются и оптимизируются специально для этой цели, их ядра могут быть намного меньше, чем у гораздо более универсального CPU.
И как ядра CUDA влияют на производительность в игре?
По сути, любые графические настройки, которые требуют одновременного выполнения вычислений, значительно выиграют от большего количества ядер CUDA. Наиболее очевидными из них считается освещение и тени, но также включены физика, а также некоторые типы сглаживания и окклюзии окружающей среды.
Ядра CUDA или потоковые процессоры?
Там, где у Nvidia GeForce есть ядра CUDA, у их основного конкурента AMD Radeon есть потоковые процессоры.
Ядра CUDA лучше оптимизированы, поскольку аппаратное обеспечение Nvidia обычно сравнивают с AMD, но нет никаких явных различий в производительности или качестве графики, о которых вам следует беспокоиться, если вы разрываетесь между приобретением Nvidia или AMD GPU.
Сколько ядер CUDA вам нужно?
И вот сложный вопрос. Как часто бывает с бумажными спецификациями, они просто не являются хорошим индикатором того, какую производительность вы можете ожидать от аппаратного обеспечения.
Многие другие спецификации, такие как пропускная способность VRAM, более важны для рассмотрения, чем количество ядер CUDA, а также вопрос оптимизации программного обеспечения.
Для общего представления о том, насколько мощен графический процессор, мы рекомендуем проверить UserBenchmark. Однако, если вы хотите увидеть детальное и всестороннее тестирование, есть несколько надежных сайтов, таких как GamersNexus, TrustedReviews, Tom’s Hardware, AnandTech и ряд других.
Вывод
Надеемся, что это помогло пролить некоторый свет на то, чем на самом деле являются ядра CUDA, что они делают и насколько они важны. Прежде всего, мы надеемся, что помогли развеять любые ваши заблуждения по этому поводу.
Что такое ядра CUDA и как они улучшают компьютерные игры?
Когда вы выбираете новый графический процессор, вы, вероятно, встретите нечто, называемое «ядрами CUDA», в списке спецификаций графического процессора. Вы услышите, как люди в восторге от этих загадочных ядер, но вы до сих пор не представляете, как они улучшают GPU. Для вас они просто то, что заставляет вас думать о морском существе.
Это все изменится. Мы расскажем вам об основах ядер CvA от Nvidia и о том, как они помогают вашему ПК лучше воспроизводить графику.
Что такое ядра CUDA?
Изображение предоставлено: kampfbox / Pixabay
Ядра CUDA звучат круто, но они, к сожалению, не имеют ничего общего с барракудой. CUDA расшифровывается как «Compute Unified Device Architecture», которая мало что объясняет, что конкретно делают ядра CUDA. Эти высокотехнологичные ядра фактически специализируются на параллельной обработке. Другими словами, они способны работать вместе, чтобы выполнить задачу.
Вы знакомы с тем, как работают процессоры?
Что такое процессор и что он делает?
Что такое процессор и что он делает?
Вычислительные сокращения сбивают с толку. Что такое процессор в любом случае? И нужен ли мне четырехъядерный или двухъядерный процессор? Как насчет AMD или Intel? Мы здесь, чтобы помочь объяснить разницу!
Прочитайте больше
? Вы, наверное, знаете, что процессоры поставляются с ядрами. Некоторые имеют двухъядерные, четырехъядерные или даже поставляются с восемью ядрами. Все эти ядра помогают процессору обрабатывать данные — чем больше ядер, тем быстрее процессорные процессы.
Ядра CUDA работают так же, как и ядра ЦП (за исключением того, что они находятся внутри графических процессоров). Хотя вы обычно можете подсчитать количество ядер ЦП на обеих руках, количество ядер CUDA в графическом процессоре может исчисляться сотнями или тысячами. Как правило, вы не увидите GPU только с одним ядром CUDA — у GPU обычно их сотни и более.
Поскольку ядра CUDA намного меньше, чем ядра ЦП, вы можете разместить больше из них внутри графического процессора. Кроме того, графические карты, как правило, имеют большую площадь по сравнению с процессорами, что делает их достаточно просторными для размещения тысяч ядер CUDA.
Почему CUDA Core имеет значение в играх?
Теперь, когда вы знаете, что такое ядра CUDA и как они возникли, вы, вероятно, задаетесь вопросом, как все эти крошечные ядра могут улучшить ваши игровые возможности. Ядра CUDA позволяют вашему графическому процессору обрабатывать подобные задачи одновременно.
Эффективность ядер CUDA проистекает из этой функции параллельной обработки. Поскольку одно ядро работает для выполнения одной задачи, связанной с графикой, другое ядро рядом с ним выполнит аналогичную работу. Это исключает потерю времени, которое происходит, когда одно ядро ждет, пока другое выполнит свою задачу, прежде чем двигаться дальше.
Ядра CUDA только выполняют задачи, связанные с графикой, и именно здесь ядра CUDA выделяются из ядер ЦП. В то время как ядра ЦП работают для выполнения различных несвязанных задач, ядрам CUDA приходится беспокоиться только о графике.
Что касается вашего игрового опыта, ядра CUDA помогают сделать вашу игру реалистичной, предоставляя графику с высоким разрешением, которая создает реалистичный 3D-эффект. Вы также заметите, что ваши игры выглядят более детально и имеют улучшенное освещение и затенение.
Когда вы сталкиваетесь с экраном загрузки во время игр, знайте, что ядра CUDA работают за кулисами. Ядра CUDA создают пейзажи, рисуют модели персонажей и настраивают освещение, прежде чем отправиться в виртуальное приключение.
В чем разница между ядрами CUDA и потоковыми процессорами?
Если вы поклонник AMD, то, вероятно, вы знаете о потоковых процессорах AMD. Большинство людей знают потоковые процессоры как версию ядер CUDA от AMD, что по большей части верно.
Потоковые процессоры имеют то же назначение, что и ядра CUDA, но оба ядра работают по-разному. Ядра CUDA и потоковые процессоры определенно не равны друг другу — 100 ядер CUDA не эквивалентны 100 потоковым процессорам.
Итак, что же отличает потоковые процессоры от ядер CUDA? В основном это связано с тем, как построен графический процессор. Структура графических процессоров AMD и Nvidia сильно различается, и это приводит к тому, что ядра работают по-разному.
Сколько ядер CUDA вам действительно нужно?
Чем больше у вас ядер CUDA, тем лучше будет ваш игровой опыт. Однако, если вы ищете доступную видеокарту
6 лучших бюджетных видеокарт для дешевых игр
6 лучших бюджетных видеокарт для дешевых игр
Бюджетные видеокарты очень способны в наши дни. Вот лучшие бюджетные видеокарты, которые позволят вам играть по дешевке.
Прочитайте больше
Возможно, вы не захотите получить одно с большим количеством ядер CUDA (они могут быть довольно дорогими).
Ядра CUDA не просто популярны среди геймеров. Они имеют несколько различных применений в областях, которые имеют дело с огромным количеством данных, таких как инжиниринг и майнинг биткойнов. Вам понадобится большое количество ядер CUDA в этих областях, но сколько вам нужно, чтобы просто играть в компьютерную игру?
Ответ на самом деле зависит от того, сколько денег в вашем кошельке и насколько хорошо вы хотите свою видеокарту. При этом видеокарта с большим количеством ядер CUDA не обязательно означает, что она лучше, чем карта с меньшим числом. Качество видеокарты действительно зависит от того, как другие ее функции взаимодействуют с ядрами CUDA.
Чтобы получить точное сравнение между двумя картами, вы должны взглянуть на тесты производительности
10 лучших бесплатных тестовых программ для Windows
10 лучших бесплатных тестовых программ для Windows
Используйте это фантастическое и бесплатное тестовое программное обеспечение для Windows, чтобы устранить неполадки в вашей системе и поддерживать ее в актуальном состоянии.
Прочитайте больше
,
Заменят ли когда-нибудь графические процессоры?
Разработка ядер CUDA заставляет задуматься о том, может ли графический процессор полностью заменить процессор. Ядра CUDA способны вместить тысячи ядер, но достаточно ли этого для замены?
С начала 2000-х годов Nvidia работает над созданием графического процессора для общих вычислений. В 2003 году исследователи из Стэнфордского университета создали модель программирования под названием Brook, которая позволит Nvidia еще на шаг приблизиться к созданию универсального графического процессора. В то время некоторые люди думали, что внедрение Brook положит конец процессорам (как вы можете видеть, этого еще не произошло).
Лидер исследовательской группы, Ян Бак, в конце концов присоединился к Nvidia, начав рассказ о ядре CUDA. Nvidia выпустила CUDA в 2006 году, и с тех пор она доминирует в сфере глубокого обучения
Глубокое обучение против машинного обучения против искусственного интеллекта: как они идут вместе?
Глубокое обучение против машинного обучения против искусственного интеллекта: как они идут вместе?
Пытаетесь понять разницу между искусственным интеллектом, машинным обучением и глубоким обучением? Вот что они все значат.
Прочитайте больше
отрасли, обработка изображений, вычислительная наука и многое другое. Даже с развитием ядер CUDA маловероятно, что графические процессоры заменят процессоры.
Обновление вашей видеокарты
Использование видеокарты, оснащенной ядрами CUDA, даст вашему ПК преимущество в общей производительности, а также в играх. Больше ядер CUDA означает более четкую и реалистичную графику. Только не забудьте учесть и другие особенности видеокарты.
Если все элементы работают вместе для достижения наилучшей производительности, вы будете знать, что сделали правильный выбор.
Не знаете, с чего начать поиск следующей видеокарты? Наше руководство по покупке видеокарт
Лучшие видеокарты для любого бюджета
Лучшие видеокарты для любого бюджета
Найти высокопроизводительный бюджетный графический процессор может быть непросто. Мы собрали лучшие видеокарты для любого бюджета.
Прочитайте больше
поможет вам сделать осознанную покупку, которая соответствует вашему бюджету.
Как пиратская игра престолов и другие шоу могут принести вам вредоносное ПО
FAQ по видеокартам GeForce: что следует знать о графических картах?
Страница 4: GPU
Что скрывается за потоковым процессором, блоком шейдеров или ядром CUDA?
Потоковый процессор обрабатывает непрерывный поток данных, которых насчитываются многие сотни, причем они выполняются параллельно на множестве потоковых процессоров. Современные GPU оснащаются несколькими тысячами потоковых процессоров, они отлично подходят для задач с высокой степенью параллельности. Это и рендеринг графики, и научные расчеты. Что, кстати, позволило GPU закрепиться в серверном сегменте в качестве вычислительных ускорителей.
Еще одним шагом дальше можно назвать интеграцию ядер Tensor в архитектуру NVIDIA Ampere, которые способны эффективно вычислять менее сложные числа INT8 и INT4, но об этом мы поговорим чуть позже.
В составе GPU GA102 имеются семь кластеров Graphics Processing Clusters (GPC) с 12 потоковыми мультипроцессорами Streaming Multiprocessors (SM) каждый. Но на видеокартах GeForce RTX 3090 и GeForce RTX 3080 активны не все SM. GA102 GPU теоретически содержит 10.752 блоков FP32 (7 GPC x 12 SM x 128 блоков FP32). Но у GeForce RTX 3090 два SM отключены, поэтому видеокарта предлагает «всего» 10.496 блоков FP32. Такой подход повышает выход годных чипов NVIDIA, поскольку наличие одного-двух дефектных SM не приводит к отбраковке кристалла.
В случае GeForce RTX 3080 один кластер GPC полностью отключен, поэтому на GA102 GPU остаются шесть GPC, но только четыре из них содержат полные 12 SM, два ограничены десятью SM. Что дает в сумме 8.704 блока FP32 в составе 68 SM.
NVIDIA масштабирует архитектуру Ampere с видеокарты GeForce RTX 3060 вплоть до GeForce RTX 3090. Ниже представлен обзор видеокарт GeForce RTX 30:
GeForce RTX 3090 | GeForce RTX 3080 Ti | GeForce RTX 3080 | GeForce RTX 3070 Ti | |
GPU | Ampere (GA102) | Ampere (GA102) | Ampere (GA102) | Ampere (GA104) |
Число транзисторов | 28 млрд. | 28 млрд. | 28 млрд. | 17,4 млрд. |
Техпроцесс | 8 нм | 8 нм | 8 нм | 8 нм |
Площадь кристалла | 628,4 мм² | 628,4 мм² | 628,4 мм² | 392,5 мм² |
Число FP32 ALU | 10.496 | 10.240 | 8.704 | 6.144 |
Число INT32 ALU | 5.248 | 5.120 | 4.352 | 3.072 |
Число SM | 82 | 80 | 68 | 48 |
Ядра Tensor | 328 | 320 | 272 | 192 |
Ядра RT | 82 | 80 | 68 | 48 |
Базовая частота | 1.400 МГц | 1.365 МГц | 1.440 МГц | 1.580 МГц |
Частота Boost | 1.700 МГц | 1.665 МГц | 1.710 МГц | 1.770 МГц |
Емкость памяти | 24 GB | 12 GB | 10 GB | 8 GB |
Тип памяти | GDDR6X | GDDR6X | GDDR6X | GDDR6X |
Частота памяти | 1.219 МГц | 1.188 МГц | 1.188 МГц | 1.188 МГц |
Ширина шины памяти | 384 бит | 384 бит | 320 бит | 256 бит |
Пропускная способность памяти | 936 Гбайт/с | 912 Гбайт/с | 760 Гбайт/с | 608 Гбайт/с |
TDP | 350 Вт | 350 Вт | 320 Вт | 290 Вт |
GeForce RTX 3070 | GeForce RTX 3060 Ti | GeForce RTX 3060 | |
GPU | Ampere (GA104) | Ampere (GA104) | Ampere (GA106) |
Число транзисторов | 17,4 млрд. | 17,4 млрд. | 12 млрд. |
Техпроцесс | 8 нм | 8 нм | 8 нм |
Площадь кристалла | 392,5 мм² | 392,5 мм² | 276 мм² |
Число FP32 ALU | 5.888 | 4.864 | 3.584 |
Число INT32 ALU | 2.944 | 2.432 | 1.792 |
Число SM | 46 | 38 | 28 |
Ядра Tensor | 184 | 152 | 112 |
Ядра RT | 46 | 38 | 28 |
Базовая частота | 1.500 МГц | 1.410 МГц | 1.320 МГц |
Частота Boost | 1.730 МГц | 1.665 МГц | 1.780 МГц |
Емкость памяти | 8 GB | 8 GB | 12 GB |
Тип памяти | GDDR6 | GDDR6 | GDDR6 |
Частота памяти | 1.725 МГц | 1.750 МГц | 1.875 МГц |
Ширина шины памяти | 256 бит | 256 бит | 192 бит |
Пропускная способность памяти | 448 Гбайт/с | 448 Гбайт/с | 360 Гбайт/с |
TDP | 220 Вт | 200 Вт | 170 Вт |
Одновременное выполнение операций с целыми числами и числами с плавающей запятой
Как мы уже упоминали, вычислительные блоки FP32 могут работать в режиме 2x FP16, то же самое касается INT16. Чтобы увеличить вычислительную производительность и сделать ее более гибкой, в архитектуре NVIDIA Turing появилась возможность одновременного расчета чисел с плавающей запятой и целых чисел. Конечно, подобная возможность сохранилась и в архитектуре Ampere. NVIDIA проанализировала данные вычисления в конвейере рендеринга в десятках игр, обнаружив, что на каждые 100 расчетов FP выполняется примерно треть вычислений INT. Впрочем, значение среднее, на практике оно меняется от 20% до 50%. Конечно, если вычисления FP и INT будут выполняться одновременно, то конвейеру придется иногда «подтормаживать» в случае взаимных связей.
Соотношение 1/3 INT32 и 2/3 FP32 отражено в структуре Ampere Streaming Multiprocessor (SM), составляющем элементе архитектуры Ampere. NVIDIA удвоила число вычислительных блоков FP32 на каждый SM. Вместо 64 блоков FP32 на SM, их теперь насчитывается 128. Плюс 64 блока INT32. Теперь на квадрант SM насчитывается два пути данных, некоторые могут работать параллельно. Один из путей данных содержит 16 блоков FP32, то есть может выполнять 16 вычислений FP32 за такт. Второй путь данных содержит по 16 блоков FP32 и INT32. Каждый из квадрантов SM может выполнять либо 32 операции FP32, либо по 16 операций FP32 и INT32 за такт. Если же брать SM целиком, то возможно выполнение 128 операций FP32 или по 64 операции FP32 и INT32 за такт.
Параллельное выполнение продолжается и на других блоках. Например, ядра RT и Tensor могут работать параллельно в конвейере рендеринга, что снижает время, требующееся на рендеринг кадра.
Под термином «потоковые процессоры» сегодня подразумевают количество вычислительных блоков GPU, хотя следует помнить, что сложность вычислений бывает разной. Поэтому термин используется гибко, но обычно все равно описывает вычислительные блоки.
Текстурные блоки
Действительно, для рендеринга объекта простых текстур уже недостаточно, использование нескольких слоев позволяет, например, получить 3D-эффект вместо плоской текстуры. Раньше объекты приходилось рассчитывать на конвейере несколько раз, и каждый проход текстурный блок накладывал текстуру, сегодня достаточно одного процесса рендеринга, текстурный блок может получать данные объекта для многократной обработки из буфера.
Контроллер памяти
Помимо изменений в SM, новая архитектура NVIDIA получила оптимизированную структуру конвейеров растровых операций (ROP), а также соединения ROP и контроллера памяти. До поколения Turing ROP всегда подключались к интерфейсу памяти. И на каждый 32-битный контроллер памяти приходилось восемь ROP. Если число контроллеров памяти и ширина шины менялись, то же самое касалось и ROP. В архитектуре Ampere ROP перенесены в GPC. Используются два раздела ROP на GPC, каждый раздел содержит восемь ROP.
Что дает иную формулу вычисления ROP на GeForce RTX 3080. Шесть GPC с 2x 8 ROP на каждом дают 96 ROP. У GeForce RTX 3090 работают семь GPC с 2x 8 ROP, что дает 112 ROP. NVIDIA намеренно интегрировала ROP глубже, чтобы задняя часть конвейера рендеринга меньше зависела от интерфейса памяти. Например, видеокарта GeForce RTX 3080 использует 320-битный интерфейс памяти, но содержит 96 ROP, а не 80 ROP.
Интерфейс памяти разделен на 32-битные блоки. В зависимости от желаемой ширины интерфейса памяти или емкости, их можно набирать в произвольном количестве.
Ядра Tensor и RT
Ядра Tensor третьего поколения
С архитектурой Turing NVIDIA представила два новых вычислительных блока, ранее на GPU не использовавшихся. Конечно, ядра Tensor знакомы нам по архитектуре Volta, но там они использовались для научных расчетов. В случае GPU Ampere ядра Tensor перешли уже на третье поколение.
Ядра Tensor ранее использовались только для вычислений INT16 и FP16, но в третьем поколении они могут работать с FP32 и FP64. Что особенно важно для сегмента HPC с высокой точностью. Для игровых GPU GeForce намного важнее меньшая точность.
Ядра Tensor архитектуры Turing могут выполнять 64 операции FP16 Fused Multiply-Add (FMA) каждое. В случае Ampere число операций увеличено до 128 у GA102 GPU и до 256 у GA100 GPU с плотными матрицами. Если же используются разреженные матрицы, число операций FMA FP16 увеличивается до 256 у GA102 GPU и до 512 у GA100 GPU. Ядра Tensor архитектуры Turing разреженные матрицы не поддерживают.
Ядра RT второго поколения
Все они опираются на тот принцип, что удаленные от луча примитивы не могут с ним пересекаться. Следовательно, и смысла их просчитывать нет. Число лучей на сценах растет экспоненциально, поэтому на каждый луч следует обрабатывать как можно меньшее число примитивов, чтобы не увеличивать вычислительную нагрузку.
Поскольку NVIDIA не изменила число ядер RT на SM в архитектуре Ampere, количество блоков SM на GPU по-прежнему определяет производительность RT. Но в ядрах RT есть другие оптимизации.
Одна из проблем с расчетом пересечений при трассировке лучей связана с движущимися объектами, особенно если используется эффект размытия движения (motion blur). Для ядер RT в архитектуре Turing такой сценарий является «узким местом». Но второе поколение ядер RT уже лучше справляется с интерполяцией эффекта размытия движения. Пересечения просчитываются с упреждением, в итоге трассировка лучей рассчитываются только для тех областей, где она необходима.
Кэши L1 и L2
Между функциональными блоками (потоковые процессоры, ядра RT и Tensor) и видеопамятью располагаются еще два уровня хранения данных, без которых GPU не смог бы выдавать высокий уровень производительности. Цель этих кэшей заключается в том, чтобы хранить информацию как можно ближе к функциональным блокам. Данные передаются из видеопамяти сначала в кэш L2, а затем и в кэш L1.
NVIDIA с архитектурой Ampere вновь увеличила кэш L1 с 96 до 128 кбайт. Скорость работы L1 была вновь удвоена. NVIDIA реализовала такую же меру ранее при переходе с Pascal на Turing. Число 32-битных регистров не изменилось и осталось на уровне 16.384. То же самое касается числа блоков чтения/записи.