Видеокарта для вычислений cuda

FAQ по видеокартам GeForce: что следует знать о графических картах?

Ядро CUDA, потоковый процессор, блок шейдеров — все это синонимы вычислительного блока GPU, который выполняет расчет данных. NVIDIA по традиции называет их ядрами CUDA, где CUDA расшифровывается как Compute Unified Device Architecture. Ядра CUDA отличаются от ядер процессора, они намного менее сложные и имеют высокую степень специализации под обрабатываемые данные. GPU сегодня умеют намного больше, чем выполнять рендеринг графики через конвейер, поэтому унификация под названиями потоковый процессор или унифицированный блок шейдеров вполне обоснована.

Потоковый процессор обрабатывает непрерывный поток данных, которых насчитываются многие сотни, причем они выполняются параллельно на множестве потоковых процессоров. Современные GPU оснащаются несколькими тысячами потоковых процессоров, они отлично подходят для задач с высокой степенью параллельности. Это и рендеринг графики, и научные расчеты. Что, кстати, позволило GPU закрепиться в серверном сегменте в качестве вычислительных ускорителей.

Впрочем, потоковые процессоры — довольно общий термин, на практике у современных GPU все сложнее. GPU могут выполнять как вычисления с плавающей запятой (FP), так и целочисленные (INT) с различной точностью. Для графики важнее всего вычисления FP32 и INT32 с 32-битной точностью. В случае научных расчетов все более важными являются расчеты с более высокой точностью, а именно FP64. Поэтому в GPU появились выделенные вычислительные блоки для типа данных FP64. Впрочем, далеко не для всех расчетов нужна точность с 32 и 64 битами. Были разработаны способы выполнения менее точных вычислений на блоках INT32, например, одновременное выполнение операций над двумя 16-битными целыми числами.

Еще одним шагом дальше можно назвать интеграцию ядер Tensor в архитектуру NVIDIA Volta и Turing, которые способны эффективно вычислять менее сложные числа INT8 и INT4, но об этом мы поговорим чуть позже.

Мы рассмотрим структуру вычислительных блоков на основе архитектуры Turing, которые организованы в определенные структуры. В составе GPU TU102 имеются шесть кластеров Graphics Processing Clusters (GPC), 36 кластеров Texture Processing Clusters (TPC) и 72 потоковых мультипроцессоров Streaming Multiprocessors (SM). Но на GPU видеокарты GeForce RTX 2080 Ti активны только 34 TPC. Каждый кластер GPC содержит шесть кластеров TPC, в каждом TPC содержатся два потоковых мультипроцессора SM. Последние предлагают 64 потоковых процессора, так что 34 TPC x 2 SM x 64 потоковых процессора как раз дают 4.352 потоковых процессора на видеокарте GeForce RTX 2080 Ti.

NVIDIA масштабирует архитектуру Turing с GeForce RTX 2060 до GeForce RTX 2080 Ti. Ниже представлен обзор видеокарт линейки GeForce RTX:

Модель GeForce RTX 2080 Ti GeForce RTX 2080 GeForce RTX 2070 GeForce RTX 2060
Цена от 72.600 ₽ от 47.000 ₽ от 31.500 ₽ от 21.100 ₽
Технические спецификации
Архитектура Turing Turing Turing Turing
GPU TU102 TU104 TU106 TU106
Техпроцесс TSMC 12 нм TSMC 12 нм TSMC 12 нм TSMC 12 нм
Число транзисторов 18,6 млрд. 13,6 млрд. 10,8 млрд. 10,8 млрд.
Площадь кристалла 754 мм² 545 мм² 445 мм² 445 мм²
Потоковые процессоры 4.352 2.944 2.304 1.920
Ядра Tensor 544 368 288 240
Ядра RT 68 46 36 30
Текстурные блоки 272 184 144 120
Геометрические блоки 34 23 18 15
ROPs 88 64 64 42
Частота GPU (базовая) 1.350 МГц 1.515 МГц 1.410 МГц 1.365 МГц
Частота GPU (Boost) 1.635 МГц 1.800 МГц 1.710 МГц 1.680 МГц
RTX-OPS 78 TRTX-OPS 60 TRTX-OPS 45 TRTX-OPS 37 TRTX-OPS
Гигалучей/с 10 Глуч/с 8 Глуч/с 6 Глуч/с 5 Глуч/с
Частота памяти 1.750 МГц 1.750 МГц 1.750 МГц 1.750 МГц
Тип памяти GDDR6 GDDR6 GDDR6 GDDR6
Объем памяти 11 GB 8 GB 8 GB 6 GB
Ширина шины памяти 352 бит 256 бит 256 бит 192 бит
Пропускная способность 616 Гбайт/с 448 Гбайт/с 448 Гбайт/с 336 Гбайт/с
TDP 260 Вт 225 Вт 185 Вт 160 Вт
Доп. питание 2x 8-конт. 1x 8-конт. + 1x 6-конт. 1x 8-конт. 1x 8-конт.
SLI/NVLink 2x NVLink 1x NVLink

Также на рынок была представлена видеокарта Titan RTX, которая опирается на полную версию GPU TU102. NVIDIA позиционирует Titan RTX как «Ultimate PC GPU», видеокарта нацелена на исследователей, ученых и разработчиков в сфере глубокого обучения и искусственного интеллекта. TU102 GPU в полной версии оснащен шестью кластерами Graphics Processing Clusters (GPC), 36 кластерами TPC (Texture Processing Cluster) и 72 потоковыми мультипроцессорами Streaming Multiprocessors (SM). В случае Titan RTX мы получаем 4.608 потоковых процессоров, 576 ядер Tensor и 96 ядер RT. Полная конфигурация памяти составляет 384 бита, NVIDIA подключает 12 чипов памяти GDDR6. В случае Titan RTX, NVIDIA использует 2-Гбайт чипы памяти Samsung, которые дают емкость до 24 Гбайт.

Одновременное выполнение операций с целыми числами и числами с плавающей запятой

Как мы уже упоминали, вычислительные блоки FP32 могут работать в режиме 2x FP16, то же самое касается INT16. Чтобы увеличить вычислительную производительность и сделать ее более гибкой, в архитектуре NVIDIA Turing появилась возможность одновременного расчета чисел с плавающей запятой и целых чисел. NVIDIA проанализировала данные вычисления в конвейере рендеринга в десятках игр, обнаружив, что на каждые 100 расчетов FP выполняется примерно треть вычислений INT. Впрочем, значение среднее, на практике оно меняется от 20% до 50%. Конечно, если вычисления FP и INT будут выполняться одновременно, то конвейеру придется иногда «подтормаживать» в случае взаимных связей.

В случае всех предыдущих архитектур NVIDIA одновременное выполнение целочисленных вычислений и расчетов с плавающей запятой не поддерживалось. В случае Turing все изменилось. Параллельная обработка FP и INT ускоряет рендеринг, поэтому NVIDIA как раз и добавила ее с архитектурой Turing. У Turing SM имеются 64 блока FP32 и 64 блока INT32 — не совсем типичное соотношение для конвейера рендеринга. Но одновременная работа блоков позволила существенно увеличить вычислительную производительность.

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

Текстурные блоки

Потоковые процессоры выполняют так называемые шейдеры — небольшие программы. Вершинные шейдеры используются для геометрических вычислений и динамического изменения объектов. Геометрические шейдеры позволяют рассчитать финальную геометрию и структуру объекта из точек, линий и треугольников. Шейдеры тесселяции обеспечивают дальнейшее разделение примитивов (тех же треугольников).

Текстурные блоки Texture Mapping Units (TMU) отвечают за то, чтобы все поверхности были покрыты соответствующими текстурами. TMU — выделенные арифметические блоки GPU. В случае архитектуры Turing, один текстурный блок дополняет 16 потоковых процессоров. Данные для текстурных блоков хранятся в видеопамяти, их можно считывать оттуда и записывать. Поскольку TMU уже не являются внешними арифметическими блоками в полном понимании, а встроены в конвейер рендеринга, каждый текстурный блок может обрабатывать объекты по нескольку раз. Действительно, для рендеринга объекта простых текстур уже недостаточно, использование нескольких слоев позволяет получить 3D-вид вместо плоской текстуры. Раньше объекты приходилось рассчитывать несколько раз, и каждый раз текстурный блок накладывал текстуру, сегодня достаточно обычного процесса рендеринга, текстурный блок может получать данные для многократной обработки из буфера.

Читайте также:  Что такое ОЗУ или RAM в компьютере

Контроллер памяти

Высокая пропускная способность памяти не менее важна, чем вычислительная производительность GPU. Только если данные можно будет быстро считывать из видеопамяти на GPU и записывать их обратно, вычисления будут проводиться достаточно быстро. С одной стороны здесь располагается GPU, выполняющий вычисления, а с другой стороны — система кэшей и памяти. Архитектуры GPU разрабатываются таким образом, чтобы получить преимущество от высокой пропускной способности памяти. Производители пытаются выжать максимум из подсистемы памяти, поэтому контроллер памяти имеет решающее значение.

Еще с архитектуры Pascal NVIDIA придерживается почти идентичной структуры GPU по работе с памятью GDDR. Интерфейс памяти разбит на 32-битные блоки. В полном варианте NVIDIA предусматривает 384-битную ширину шины, но из-за одного отключенного 32-битного блока мы получаем 352 бита у GeForce RTX 2080 Ti. Через каждый 32-битный интерфейс подключен чип памяти. 352 бит/ 32 бит дает 11 каналов и 11 чипов памяти GDDR6. В случае GeForce RTX 2080 и GeForce RTX 2070 ширина шины ограничена 256 битами, то есть восемью каналами и восемью чипами памяти GDDR6.

Ядра Tensor и RT

Ядра Tensor

С архитектурой Turing NVIDIA представила два новых вычислительных блока, ранее на GPU не использовавшихся. Конечно, ядра Tensor знакомы нам по архитектуре Volta, но там они использовались для научных расчетов. В случае GPU Turing и видеокарт GeForce RTX данные блоки играют особую роль.

Ядра Tensor предназначены для выполнения матричного умножения. Матричное умножение (BLAS GEMM) — наиболее важный компонент для тренировки и инференса сетей глубокого обучения. Матричные операции подразумевают выборку значений матриц A и B (выполнение сложения и умножения), после чего результат будет записываться в матрицу C. Для матриц 4×4 данные операции выполняются для всех 16 полей. В архитектуре Pascal для выполнения упомянутых операций использовались блоки FP32, поэтому скорость оставляла желать лучшего.

Ядра Tensor в архитектуре Turing могут выполнять INT16, INT8 и INT4. Вычислительная производительность INT8 в два раза выше, чем для INT16, поскольку можно выполнить две операции INT8 вместо INT16. То же самое касается сравнения между INT4 и INT8. В максимальном варианте GPU TU102 NVIDIA указывает 576 ядер Tensor. Но у GeForce RTX 2080 мы получаем только 544 ядра Tensor, для которых NVIDIA указывает вычислительную производительность 110 TFLOPS FP16 для игр и обработки изображений. В случае вычислений INT8 мы получаем 220 TOPS, а INT4, которые пока не используются, уже 440 TOPS.

Основная сфера применения ядер Tensor — Neural Graphics Framework (NGX) от NVIDIA. NGX обеспечивает интерфейсы для вычисления Deep Learning Super Sampling (DLSS) и различных эффектов пост-обработки через ANSEL. Но мы остановимся на этом чуть позже.

Ядра RT

Ядра RT — второй тип особых аппаратных блоков архитектуры Turing, которые используются в ней впервые. На полную трассировку лучей уходит слишком много ресурсов и времени даже с учетом нескольких тысяч потоковых процессоров на GPU. Именно по этой причине NVIDIA добавила ядра RT в архитектуру Turing, которые выполняют расчеты, необходимые для трассировки лучей. И с некоторыми типами вычислений ядра RT справляются очень эффективно. Все технологии трассировки лучей сегодня пытаются снизить вычислительную нагрузку, для этого используются разные алгоритмы.

Все они опираются на тот принцип, что удаленные от луча примитивы не могут с ним пересекаться. Поэтому и смысла их просчитывать нет. Экспоненциальное увеличение числа лучей приводит к тому, что на каждый луч следует обрабатывать как можно меньшее число примитивов, чтобы не увеличивать вычислительную нагрузку.

Один из способов выборки примитивов — Bounding Volume Hierarchy (BVH). В случае BVH сцена разбивается на все меньшие по размеру блоки, в которых присутствуют примитивы. Луч следует обрабатывать только с теми блоками, которые он проходит на пути к примитиву. Подход несколько напоминает воксели, которые NVIDIA использует для Voxel Global Illumination (VXGI). BVH представляет собой дерево, в котором можно видеть, какой именно блок и, в конечном итоге, примитив следует учитывать для расчета трассировки лучей.

BVH на классических архитектурах GPU или на CPU может выполняться только программно. Таким образом, потоковым процессорам приходится на каждый луч выполнять несколько тысяч инструкций, в том числе многочисленные циклы для поиска блоков и, в конечном итоге, примитива. Только после нахождения примитива можно выполнять шейдинг луча. Именно здесь на помощь приходят ядра RT. Они содержат специальные функциональные блоки SFU (Special Function Units), оптимизированные под поиск нужных блоков и примитива, с которым пересекается луч. Потоковый процессор принимает задачу, после чего передает ее ядру RT, которое возвращает результат потоковому процессору — и последний может выполнять рендеринг дальше по конвейеру.

Источник

Видеокарта для вычислений cuda

Анонс видеокарт NVIDIA состоялся 1 сентября. Было представлено три модели игровых видеокарт GeForce: BFGPU RTX 3090, RTX 3080 и RTX 3070. Генеральный директор NVIDIA, Дженсен Хуанг (англ. Jen-Hsun Huang), рассказал сообществу о главных достоинствах новой архитектуры, а после онлайн-конференции появились подробные спецификации видеокарт, которые удивили многих.

10496, 8704 и 5888 CUDA-ядер!

Шокирующим стало количество CUDA-ядер, которое по непонятным причинам удвоилось. За несколько дней до анонса некоторые партнеры NVIDIA опубликовали характеристики своих графических решений, в которых подтверждалась ранняя информация о 5248 и 4352 CUDA-ядрах в графических чипах RTX 3090 и RTX 3080. Но в официальных характеристиках количество CUDA-ядер составляло 10496 и 8704. Несмотря на большое количество новостей от инсайдеров, лишь немногие вспомнили о том, что задолго до анонса озвучивал известный инсайдер @kopite7kimi и @KittyYYuko.

А что говорят инсайдеры?

В нескольких постах @kopite7kimi и @KittyYYuko сообщалось, что производительность видеокарт Ampere странным образом «искажена» по сравнению с видеокартами Turing — наблюдалось удвоение производительности в операциях с плавающей точкой, когда производительность по другим операциям была схожа с производительностью Turing. Эта информация и различие характеристик, представленных NVIDIA и ее партнерами, требовала детального изучения архитектуры, но официальной документации по видеокартам GeForce Ampere еще нет. О некоторых особенностях рассказали специалисты портала DigitalFoundry в своем обзоре, а затем и официальные представители NVIDIA объяснили в чем кроется подвох.

Вспомним Turing

Для начала вспомним об архитектуре Turing. В графических чипах Turing каждый потоковый мультипроцессор (Streaming Multiprocessor, SM) содержит четыре процессора, в которых располагаются CUDA-ядра. В архитектуре Turing каждый процессор располагает блоком для выполнения операций с плавающей точкой FP32 и блоком для выполнения целочисленных операций INT32. В каждом блоке насчитывается по 16 CUDA-ядер. Каждый блок имеет свой канал данных, что позволяет выполнять операции FP32 и INT32 одновременно. В общем итоге один мультипроцессор содержит 64 CUDA-ядра FP32 и 64 CUDA-ядра INT32, имея возможность выполнять 64 FP32 и 64 INT32 операции за такт.

Знакомимся с Ampere

В архитектуре Ampere для игровых видеокарт ситуация изменилась. Ясность внес Тони Тамаси (англ. Tony Tamasi), старший вице-президент по контенту и технологиям NVIDIA. Он сообщил на официальном канале NVIDIA в Reddit, что в новой архитектуре изменилась структура каналов данных и был добавлен дополнительный блок для выполнения операций FP32. В одном процессоре находится два канала данных, как и в Turing, но теперь в одном канале объединены 16 CUDA-ядер FP32 и 16 CUDA-ядер INT32, а другой канал по-прежнему содержит только 16 CUDA-ядер FP32. В результате новый дизайн позволяет в одном процессоре за один такт выполнять 32 операции FP32 или 16 FP32 и 16 INT32 операций. В одном потоковом мультипроцессоре за такт может выполняться 128 FP32 операций или 64 FP32 и 64 INT32 операции.

Читайте также:  Как добавить объем оперативной памяти для видеокарты

Так сколько CUDA-ядер?!

Расчет CUDA-ядер для спецификаций ведется только по CUDA-ядрам FP32, поэтому для определения общего числа CUDA-ядер GeForce RTX 3090 необходимо число потоковых мультипроцессоров, которое равно 82, умножить на 128 CUDA-ядер FP32 в одном мультипроцессоре. В результате получаем 10496 ядер.

В ближайшие дни станет доступна полная документация по графическим чипам Ampere для игровых видеокарт. Она раскроет все подробности новейшей архитектуры NVIDIA.

Источник

О технологии многопотоковых вычислений CUDA в видеокартах компании Nvidia

Видеокарты производства компании Nvidia пользуются заслуженной славой в области проведения надежных высокопроизводительных вычислений. Благодаря наличию аппаратных возможностей технологии CUDA, «зеленые карты» показывают отличные результаты и при майнинге на большинстве алгоритмов консенсуса PoW.

Рассмотрим подробнее некоторые особенности CUDA.

Что такое технология CUDA?

CUDA (Compute Unified Device Architecture) — это технология многопотоковых компьютерных вычислений, созданная компанией NVIDIA. Она позволяет значительно увеличить производительность при проведении сложных расчетов за счет распараллеливания на множестве вычислительных ядер.

Приложения CUDA используются для обработки видео и аудио, моделирования физических эффектов, в процессе разведки месторождений нефти и газа, проектировании различных изделий, медицинской визуализации и научных исследованиях, в разработке вакцин от болезней, в том числе COVID-19, физическом моделировании и других областях.

CUDA ™ — это архитектура параллельных вычислений общего назначения, которая позволяет решать сложные вычислительные задачи с помощью GPU. CUDA поддерживает операционные системы Linux и Windows. Чем больше ядер CUDA имеет видеокарта и чем больше частота их работы, тем большую производительность она может обеспечить.

Каждая дополнительна единица вычислительной мощности требует соответствующего количества потребленной электроэнергии. Чем меньший технологический процесс используется при производстве вычислительных ядер, тем меньшие напряжения используются для их питания и, соответственно снижается потребление. Поэтому, даже если видеокарты разных поколений имеют одинаковую теоретическую вычислительную мощность в TFlops, их эффективность кардинально отличается по КПД, в значительной мере зависящему от потребления полупроводниковых элементов, из которых состоят ядра видеопроцессоров.

Архитектура CUDA упрощенно включает набор исполняемых команд и аппаратный механизм проведения параллельных вычислений внутри графического процессора. Разработчики программного обеспечения, в том числе майнеров, для работы с CUDA обычно используют языки программирования высокого уровня (C, Фортран). В будущем в CUDA планируется добавление полноценной поддержки C ++, Java и Python. Продвинутые программисты дополнительно улучшают эффективность майнеров с помощью оптимизации кода майнеров на языке более низкого (машинного) уровня – Ассемблере. В качестве примера в этом контексте можно привести Клеймор дуал майнер, который показывает высочайшую эффективность на зеленых видеокартах.

В технологии CUDA есть три важных элемента: библиотеки разработчика, среда выполнения и драйвера. Все они прямо влияют на производительность и надежность работы приложений.

Драйвер — это уровень абстракции устройств с поддержкой CUDA, который обеспечивает интерфейс доступа для аппаратных устройств. С помощью среды выполнения через этот уровень реализуется выполнение различных функций по проведению сложных вычислений.

Таблица версий CUDA, поддерживающихся в драйверах NVIDIA разных версий:

Версия CUDA Linux x86_64 Windows x86_64
CUDA 11.1 >=455.23 >=456.38
CUDA 11.0.3 Update 1 >= 450.51.06 >= 451.82
CUDA 11.0.2 GA >= 450.51.05 >= 451.48
CUDA 11.0.1 RC >= 450.36.06 >= 451.22
CUDA 10.2.89 >= 440.33 >= 441.22
CUDA 10.1 (10.1.105) >= 418.39 >= 418.96
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62

Для CUDA 6.5 нужны драйвера 340.0+, для CUDA 6.0 — 331.00, для CUDA 5.5 — не ниже 319.00.

При установке новых драйверов на видеокарты со старой версией compute capability вычисления производиться не будут.

Например, на большинство видеокарт с архитектурой Kepler (GeForce 640 — 780Ti, 910M, GTX TITAN, compute capability 3.5) нет смысла ставить драйвера новее 441.22 (Windows) или 440.33 (Linux), так как в них отсутствует поддержка compute capability 3.x.

Информация, которую нужно учитывать при установке драйверов для видеокарт Nvidia на предмет соответствия версии compute capability CUDA:

  • CUDA SDK 1.0 — поддерживает версии compute capability 1.0 – 1.1 (Tesla);
  • CUDA SDK 1.1 — 1.0 — версии 1.1+x (Tesla);
  • CUDA SDK 2.0 — 1.0 — версии 1.1+x (Tesla);
  • CUDA SDK 2.1 – 2.3.1 — версии 1.0 – 1.3 (Tesla);
  • CUDA SDK 3.0 – 3.1 — 1.0 – версия 2.0 (Tesla, Fermi);
  • CUDA SDK 3.2 — версии 1.0 – 2.1 (Tesla, Fermi) [32]
  • CUDA SDK 4.0 – 4.2 — версии 1.0 – 2.1+x (Tesla, Fermi).
  • CUDA SDK 5.0 – 5.5 — версии 1.0 – 3.5 (Tesla, Fermi, Kepler).
  • CUDA SDK 6.0 — версии 1.0 – 3.5 (Tesla, Fermi, Kepler).
  • CUDA SDK 6.5 — версии 1.1 – 5.x (Tesla, Fermi, Kepler, Maxwell). Последняя версия CUDA для видеокарт с поддержкой компьютерных вычислений версии 1.x (Tesla)
  • CUDA SDK 7.0 – 7.5 — версии 2.0 – 5.x (Fermi, Kepler, Maxwell).
  • CUDA SDK 8.0 — для версий 2.0 – 6.x (Fermi, Kepler, Maxwell, Pascal). Последняя версия CUDA для видеокарт с поддержкой компьютерных вычислений версии 2.x (Fermi) (Pascal GTX 1070Ti не поддерживается);
  • CUDA SDK 9.0 – 9.2 — поддержка версий 3.0 – 7.2 (Kepler, Maxwell, Pascal, Volta). Видеокарты с архитектурой Pascal GTX 1070Ti не поддерживаются;
  • CUDA SDK 10.0 – 10.2 — поддержка 3.0 – 7.5 (Kepler, Maxwell, Pascal, Volta, Turing). Это последняя версия CUDA с поддержкой компьютерных вычислений версии 3.x (Kepler);
  • CUDA SDK 11.0 – 11.2- частично 3.5 – 8.6 (некоторые карты с архитектурой Kepler, Maxwell, Pascal, Volta, Turing, Ampere).

Библиотеки разработки (CUDA SDK) на практике реализуют выполнение математических операций и крупномасштабных задач параллельных вычислений.

Среда выполнения CUDA — это интерфейс разработчика плюс компоненты выполнения программного кода. Она определяет основные типы данных и функций для проведения вычислений, преобразований, управления памятью, позволяет реализовать доступ к устройствам и спланировать выполнение команд.

Программный код CUDA на практике обычно состоит из двух частей, одна из которых выполняется на CPU, а другая на GPU.

Ядро CUDA имеет три важных абстрактных понятия:

  • иерархия групп потоков;
  • разделяемая память;
  • синхронизация барьеров,

которые могут быть достаточно легко представлены и использованы на языке программирования Си.

Программный стек CUDA состоит из нескольких уровней, аппаратного драйвера, интерфейса прикладного программирования (API) и среды его выполнения, а также двух расширенных математических библиотек общего назначения, CUFFT и CUBLAS.

Теоретически каждое новое поколение CUDA должно демонстрировать более высокую производительность за счет устранения выявленных ошибок, оптимизации кода, добавления новых алгоритмов и прочих новшеств. К сожалению, на практике это не всегда соответствует реалиям. В особенности это связано с постоянным ростом аппетита программ по отношению аппаратным ресурсам. Это касается не только программных пакетов CUDA, но затрагивает даже такие, казалось бы, независимые операционные системы, как Linux.

Влияет ли на хешрейт версия CUDA, установленная на компьютере?

Практические опыты с майнерами на разных версиях CUDA показывают, что новые версии особого прироста в хешрейте не дают.

Использование новых драйверов Nvidia обычно сопряжено с увеличением требований к аппаратному обеспечению и часто влечет рост потребления видеопамяти, что не всегда положительно сказываются на производительности видеокарт при майнинге.

Это особенно проявляется в быстродействии и потреблении видеопамяти при майнинге на алгоритме Ethash/DaggerHashimoto. Как правило, старые версии драйверов потребляют меньше видеопамяти при одинаковой производительности на Ethash.

Для обычных пользователей нет необходимости заботиться о версии CUDA, если только этого не требуют последние версии майнеров с новыми поддерживающимися алгоритмами.

Тем не менее, нужно учитывать, что технология CUDA постоянно совершенствуется, в нее добавляются новые возможности, которые требуют адаптации программ-майнеров. Поэтому современные майнеры иногда имеют разные версии, которые поддерживают работу с разными версиями CUDA 8.0, 9.1/9.2, а также 10.0, 10.1 и 10.2.

Вам также может понравиться

Как самому сделать маску для защиты от вирусов и пыли

Источник



Нужны ли графические ядра Nvidia CUDA для игр?<\/h1>

Ядра CUDA являются эквивалентом процессорных ядер Nvidia. Они оптимизированы для одновременного выполнения большого количества вычислений, что очень важно для современной графики. Естественно, на графические настройки больше всего повлияло количество ядер CUDA в видеокарте, и они требуют больше всего от графического процессора, то есть теней и освещения, среди прочего.

CUDA долгое время была одной из самых выдающихся записей в спецификациях любой видеокарты GeForce. Однако не все до конца понимают, что такое ядра CUDA и что конкретно они означают для игр.

В этой статье дан краткий и простой ответ на этот вопрос. Кроме того, мы кратко рассмотрим некоторые другие связанные вопросы, которые могут возникнуть у некоторых пользователей.

Что такое ядра видеокарты CUDA?

CUDA является аббревиатурой от одной из запатентованных технологий Nvidia: Compute Unified Device Architecture. Его цель? Эффективные параллельные вычисления.

Одиночное ядро ​​CUDA аналогично ядру ЦП, основное отличие в том, что оно менее изощренное, но реализовано в большем количестве. Обычный игровой процессор имеет от 2 до 16 ядер, но количество ядер CUDA исчисляется сотнями, даже в самых низких современных видеокартах Nvidia GeForce. Между тем, у высококлассных карт сейчас их тысячи.

Что делают ядра CUDA в играх?

GPU во многих отношениях отличается от CPU, но, если говорить об этом с точки зрения непрофессионала: CPU — это скорее администратор, отвечающий за управление компьютером в целом, а GPU лучше всего подходит для выполнения тяжелых работ.

Обработка графики требует одновременного выполнения множества сложных вычислений, поэтому такое огромное количество ядер CUDA реализовано в видеокартах. И учитывая, как графические процессоры разрабатываются и оптимизируются специально для этой цели, их ядра могут быть намного меньше, чем у гораздо более универсального CPU.

И как ядра CUDA влияют на производительность в игре?

По сути, любые графические настройки, которые требуют одновременного выполнения вычислений, значительно выиграют от большего количества ядер CUDA. Наиболее очевидными из них считается освещение и тени, но также включены физика, а также некоторые типы сглаживания и окклюзии окружающей среды.

Источник

Параллельные вычисления на GPU NVIDIA или суперкомпьютер в каждом доме

Самое трудоёмкое в этой программе — это настойка. Программа имеет консольный интерфейс, но благодаря инструкции, которая прилагается к самой программе, ей можно пользоваться. Далее приведена краткая инструкция по настройке программы. Мы проверим программу на работоспособность и сравним её с другой подобной программой, которая не использует NVIDIA CUDA , в данном случае это известная программа «Advanced Archive Password Recovery».

Из скаченного архива cRark нам нужно только три файла: crark.exe , crark-hp.exe и password.def . Сrark.exe — это консольная утилита вскрытия паролей RAR 3.0 без шифрованных файлов внутри архива (т.е. раскрывая архив мы видим названия, но не можем распаковать архив без пароля).

Сrark-hp.exe — это консольная утилита вскрытия паролей RAR 3.0 с шифрованием всего архива (т.е. раскрывая архив мы не видим ни названия, ни самих архивов и не можем распаковать архив без пароля).

Password.def – это любой переименованный текстовой файл с очень небольшим содержанием (к примеру: 1-я строка: ## 2-я строка: ?* , в этом случае вскрытие пароля будет происходить с использованием всех знаков). Password.def — это руководитель програмы cRark. В файле содержаться правила вскрытия пароля (или область знаков которую crark.exe будет использовать в своей работе). Подробнее о возможностях выбора этих знаков написано в текстовом файле полученном при вскрытии скачанного на сайте у автора программы cRark: russian.def .

Подготовка

Создаём любую папку в любом месте (например на диске С:) и называем любым именем например «3.2». Помещаем туда файлы: crark.exe , crark-hp.exe и password.def и запароленный/зашифрованный архив RAR.

Далее, следует запустить консоль командной строки Windows и перейти в ней созданную папку. В Windows Vista и 7 следует вызвать меню «Пуск» и в поле поиска ввести «cmd.exe», в Windows XP из меню «Пуск» сначала следует вызвать диалог «Выполнить» и уже в нём вводить «cmd.exe». После открытия консоли следует ввести команду вида: cd C:\папка\ , cd C:\3.2 в данном случае.

Набираем в текстовом редакторе две строки (можно также сохранить текст как файл .bat в папке с cRark) для подбора пароля запароленного RAR-архива с незашифрованными файлами:

echo off;
cmd /K crark (название архива).rar

для подбора пароля запароленного и зашифрованного RAR-архива:

echo off;
cmd /K crark-hp (название архива).rar

Копируем 2 строки текстового файла в консоль и нажимаем Enter (или запускаем .bat файл).

Результаты

Процесс расшифровки показан на рисунке:

Для тех, у кого процессор Intel, хорошая системная плата с высокой частотой системной шины (FSB 1600 МГц), показатель CPU rate и скорость перебора будут выше. А если у вас четырёхъядерный процессор и пара видеокарт уровня GeForce 280 GTX, то быстродействие перебора паролей ускоряется в разы. Подводя итоги примера надо сказать, что данная задача была решена с применением технологии CUDA всего за каких то 2 минуты вместо 5-ти часов что говорит о высоком потенциале возможностей для данной технологии!

Источник