Как узнать compute capability

[Tutorial CUDA] Nvidia GPU: CUDA Compute Capability

When you are compiling CUDA code for Nvidia GPUs it’s important to know which is the Compute Capability of the GPU that you are going to use. How many times you got the error

nvcc fatal : Unsupported gpu architecture ‘compute_XX’

and you do not know how to correctly solve it.

The solution is relatively simple, you must add the correct FLAG to “nvcc” call:

where “XX” is the Compute Capability of the Nvidia GPU board that you are going to use.

Now you need to know the correct value to replace “XX“, Nvidia helps us with the useful “CUDA GPUs” webpage.

For example, if your GPU is an Nvidia Titan Xp, you know that it is a “GeForce product“, you search for it in the right table and you find that its Compute Capability is 6.1, so the correct FLAG to use in the compiler is

if you are instead an embedded developer and you are a lucky owner of an Nvidia Jetson TX2, you must search in “TEGRA/Jetson products” and you will find that the Compute Capability of the TX2 is 6.2, so you need to use this configuration:

If you are compiling software that will run on different machines and you do not know exactly which GPU is installed on them, you can generate an application that supports more than one Nvidia GPU technology:

Источник

О проблемах, приводящих к появлению ошибки определения CUDA-устройств

Иногда при попытке запустить программу, использующую многопотоковые вычисления (например, майнер), появляется сообщение об отсутствии CUDA-устройств, например:

CUDA device not found

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

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

Как избавиться от ошибки CUDA device not found?

Перед поиском причин ошибки CUDA device not found нужно убедиться, что видеокарта, установленная на компьютере, поддерживается программой, которая выдает ошибку.

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

В дистрибутивах Windows и в OS с Linux-ядром проблема с определением CUDA-устройтсв обычно успешно решается с помощью повторной установки нужных драйверов, желательно с полной очисткой от предыдущих. Дополнительно можно вручную инсталлировать CUDA Toolkit, соответствующий установленной версии драйверов или новее.

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

Пример отображения информации в программе GPU-Z на компьютере с видеокартой Nvidia GT710 (ОС Windows 8.1, драйвера успешно установлены), но CUDA-устройства пребывают в состоянии невидимости:

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Для решения проблемы можно предпринять следующие шаги:

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

перезагрузить систему и заново установить драйвера

Иногда перечисленные ухищрения не срабатывают и, хотя видеокарта Nvidia успешно определяется операционной системой, видна в диспетчере задач Windows, она не работает как CUDA-устройство.

При загрузке этого же компьютера с операционной системой на Linux-ядре (xubuntu 18.04), видеокарта успешно работает, производя многопотоковые вычисления при майнинге.

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

Как решить проблему с определением CUDA-устройств в операционной системе Windows?

Множество проблем при работе в Windows возникает из-за использования сборок, в которых была произведена «доработка напильником», осуществлено «выпиливание» ненужных компонентов и/или чрезмерная очистка от ненужных файлов.

В связи с этим, в большинстве случаев самым простым и логичным решением является использование официального дистрибутива Windows, в котором не производились изменения сторонними лицами.

Иногда, даже в случае использования официальной операционной системы Windows,но Embedded-версии, проблемы остаются. В этом случае также стоит перейти на полноценную сборку от Microsoft.

Если есть время и желание, то можно попытаться исправить ситуацию, найдя и устранив причину, по которой конкретная операционная система отказывается видеть cuda-функционал видеокарт, управляемых ею

Для этого нужно понять, как реализуются CUDA-функции на компьютере.

Как производятся многопотоковые вычисления на видеокартах Nvidia?

Для работы CUDA приложений на компьютере нужно иметь CUDA-видеокарту и драйвер дисплея NVIDIA, совместимый с CUDA Toolkit, использовавшийся при компиляции приложения (майнера):

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Для обеспечения совместимости каждая версия CUDA toolkit поставляется с подходящим драйвером дисплея NVIDIA. Пакет с драйверами включает в себя user mode CUDA-драйвер (файл libcuda.so) и компоненты ядра, что позволяет обеспечить работу всех функций, поддерживаемых в конкретной версии CUDA Toolkit.

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

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

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Работа CUDA-программ осуществляется с помощью двух интерфейсов прикладного программирования (API):

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Майнер или другая программа, использующая мультипроцессоры Nvidia, работает на основе CUDA Runtime API, поверх низкого уровня CUDA-драйверов:

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Вызовы runtime-кода программы транслируются в более простые инструкции, в свою очередь обрабатываемые низкоуровневым API-драйвером.

Для успешного запуска майнера или другой программы, требующей поддержки CUDA, нужно:

Если программа (майнер) скомпилирована для более новой версии CUDA, чем та, что поставляется в драйверах, то (иногда) можно повысить только версию CUDA runtime, не трогая драйверов (эта фишка доступна для версий CUDA новее 10.0):

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Это длается с помощью специального «CUDA compat package» на NGC-Ready профессиональных видеокартах Nvidia, но, возможно, при «определенной сноровке», применимо и на других моделях.

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Если после успешной установки драйверов программа (майнер) не видит графического ускорителя, выдавая ошибку No Nvidia CUDA GPU detected, скорее всего не срабатывает CUDA runtime (так как система видит видеокарту, то значит функция deviceQueryDrv, реализуемая драйвером API работает нормально). Возможно, проблема кроется в неправильном взаимодействии с NVML-библиотекой, которая выдает неверную информацию о неподдерживаемом GPU.

Как найти причину бага CUDA runtime, приводящего к ошибке no usable mining devices found?

Детектирование наличия CUDA-capable GPU производится через библиотеку cudart (файлы cudart.dll, cudart_static.lib, cudadevrt.lib.dll в Windows) с помощью функции cudaGetDeviceCount() из состава CUDA Runtime API.

Она выдает ошибку cudaErrorNoDevice если в системе отсутствуют совместимые устройства или используется неподходящий драйвер (ошибка cudaErrorInsufficientDriver).

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

Таблица соответствия драйверов, версии Compute Capability и архитектуры видеокарт Nvidia:

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

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

В Windows очень удобно для изучения информации о видеокарте использовать программы GPU-Z или Некоторую информацию о старых видеокартах nVIDIA Geforce, Quadro и Tesla в Windows, Linux и Mac OSX можно получить утилитой cuda-z. В большинстве систем можно использовать штатную консольную утилиту nvidia-smi. Она позволяет получать следующую информацию:

Обычно утилита nvidia-smi.exe устанавливается в папку

где имя каталога nvdm* различается в зависимости от используемых драйверов/системы.

В старых ОС, например, в Windows 8.1 с драйверами 445.87, программа nvidia-smi находится в папке C:\Program Files\NVIDIA Corporation\NVSMI:

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Запуск программы nvidia-smi.exe в Windows можно производить из ее каталога с помощью простейшего батника (для удобства пользователя можно использовать ярлык на рабочем столе):

При запуске такого bat-файла (без дополнительных ключей) можно получить информацию об установленных драйверах и поддерживаемой версией CUDA, например:

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Как видно на приведенном в качестве примера рисунке, nvidia-smi видит видеокарту, драйвер и поддерживаемую версию CUDA, но в колонке Process name (она отвечает за compute-процессы) отображается надпись Not Supported. При этом игры на этой видеокарте работают (например, World of Tanks), а майнеры не видят CUDA-устройства (появляется ошибка no devices).

В этом случае, наверное, лучше перейти на другой, более послушный дистрибутив операционной системы.

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

Как управлять видимостью видеокарт Nvidia с помощью конфигурации окружения?

Видимостью CUDA устройств можно управлять с помощью переменной окружения CUDA_VISIBLE_DEVICES. Она позволяет исключить или включить в поле зрения прикладной программы видеокарты с помощью командной строки вида:

в которой перечисляются только видимые программой видеокарты.

Эту команду нужно использовать до запуска основной программы вместе с другими переменными окружения, например, в скрипте Linux, следующим образом:

В Windows эту команду можно использовать в батнике майнера следующим образом:

Источник

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

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

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

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

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

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

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

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

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

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

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

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

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

Версия CUDALinux x86_64Windows 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) на практике реализуют выполнение математических операций и крупномасштабных задач параллельных вычислений.

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability

Среда выполнения 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.

Источник

What does ‘compute capability’ mean w.r.t. CUDA?

I am new to CUDA programming and don’t know much about it. Can you please tell me what does ‘CUDA compute capability’ mean? When I use the following code on my university server, it showed me the following result.

RESULT:

cudaGetDeviceProperties returns two fields major and minor. Can you please tell me what is this 4199672.0. means?

2 Answers 2

The compute capability is the «feature set» (both hardware and software features) of the device. You may have heard the NVIDIA GPU architecture names «Tesla», «Fermi» or «Kepler». Each of those architectures have features that previous versions might not have.

As @dialer mentioned, the compute capability is your CUDA device’s set of computation-related features. As NVidia’s CUDA API develops, the ‘Compute Capability’ number increases. At the time of writing, NVidia’s newest GPUs are Compute Capability 3.5. You can get some details of what the differences mean by examining this table on Wikipedia.

As @aland suggests, your call probably failed, and what you’re getting is the result of using an uninitialized variable. You should wrap your cudaGetDeviceProps() call with some kind of error checking; see

for a discussion of the options for doing this.

Not the answer you’re looking for? Browse other questions tagged cuda definition or ask your own question.

Linked

Related

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.12.14.41009

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

CUDA: Как работает GPU

Внутренняя модель nVidia GPU – ключевой момент в понимании GPGPU с использованием CUDA. В этот раз я постараюсь наиболее детально рассказать о программном устройстве GPUs. Я расскажу о ключевых моментах компилятора CUDA, интерфейсе CUDA runtime API, ну, и в заключение, приведу пример использования CUDA для несложных математических вычислений.

Вычислительная модель GPU:

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

CUDA и язык C:

Дополнительные типы переменных и их спецификаторы будут рассмотрены непосредственно в примерах работы с памятью.

CUDA host API:

Перед тем, как приступить к непосредственному использованию CUDA для вычислений, необходимо ознакомиться с так называемым CUDA host API, который является связующим звеном между CPU и GPU. CUDA host API в свою очередь можно разделить на низкоуровневое API под названием CUDA driver API, который предоставляет доступ к драйверу пользовательского режима CUDA, и высокоуровневое API – CUDA runtime API. В своих примерах я буду использовать CUDA runtime API.

Понимаем работу GPU:

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

Задача. Требуется вычислить сумму двух векторов размерностью N элементов.

Нам известна максимальные размеры нашего блока: 512*512*64 нитей. Так как вектор у нас одномерный, то пока ограничимся использованием x-измерения нашего блока, то есть задействуем только одну полосу нитей из блока (рис. 3).
Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability
Рис. 3. Наша полоса нитей из используемого блока.

Заметим, что x-размерность блока 512, то есть, мы можем сложить за один раз векторы, длина которых N // Функция сложения двух векторов
__global__ void addVector( float * left, float * right, float * result)
<
//Получаем id текущей нити.
int idx = threadIdx.x;

Таким образом, распараллеливание будет выполнено автоматически при запуске ядра. В этой функции так же используется встроенная переменная threadIdx и её поле x, которая позволяет задать соответствие между расчетом элемента вектора и нитью в блоке. Делаем расчет каждого элемента вектора в отдельной нити.

Пишем код, которые отвечает за 1 и 2 пункт в программе:

#define SIZE 512
__host__ int main()
<
//Выделяем память под вектора
float * vec1 = new float [SIZE];
float * vec2 = new float [SIZE];
float * vec3 = new float [SIZE];

//Инициализируем значения векторов
for ( int i = 0; i //Указатели на память видеокарте
float * devVec1;
float * devVec2;
float * devVec3;


dim3 gridSize = dim3(1, 1, 1); //Размер используемого грида
dim3 blockSize = dim3(SIZE, 1, 1); //Размер используемого блока

Теперь нам остаеться скопировать результат расчета из видеопамяти в память хоста. Но у функций ядра при этом есть особенность – асинхронное исполнение, то есть, если после вызова ядра начал работать следующий участок кода, то это ещё не значит, что GPU выполнил расчеты. Для завершения работы заданной функции ядра необходимо использовать средства синхронизации, например event’ы. Поэтому, перед копированием результатов на хост выполняем синхронизацию нитей GPU через event.

Код после вызова ядра:

//Выполняем вызов функции ядра
addVector >>(devVec1, devVec2, devVec3);

//Хендл event’а
cudaEvent_t syncEvent;

cudaEventCreate(&syncEvent); //Создаем event
cudaEventRecord(syncEvent, 0); //Записываем event
cudaEventSynchronize(syncEvent); //Синхронизируем event

Рассмотрим более подробно функции из Event Managment API.

Как узнать compute capability. Смотреть фото Как узнать compute capability. Смотреть картинку Как узнать compute capability. Картинка про Как узнать compute capability. Фото Как узнать compute capability
Рис. 4. Синхронизация работы основоной и GPU прграмм.

На рисунке 4 блок «Ожидание прохождения Event’а» и есть вызов функции cudaEventSynchronize.

Ну и в заключении выводим результат на экран и чистим выделенные ресурсы.

cudaFree(devVec1);
cudaFree(devVec2);
cudaFree(devVec3);

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

Заключение

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *