stringtranslate.com

КУДА

CUDA ( Compute Unified Device Architecture ) — это проприетарная платформа параллельных вычислений с закрытым исходным кодом и интерфейс прикладного программирования (API), который позволяет программному обеспечению использовать определенные типы графических процессоров (GPU) для обработки общего назначения. Этот подход называется универсальным. вычисления на графических процессорах ( GPGPU ). CUDA — это программный уровень, который предоставляет прямой доступ к набору виртуальных инструкций графического процессора и параллельным вычислительным элементам для выполнения вычислительных ядер . [1]

CUDA предназначен для работы с такими языками программирования, как C , C++ и Fortran . Эта доступность облегчает специалистам по параллельному программированию использование ресурсов графического процессора, в отличие от предыдущих API, таких как Direct3D и OpenGL , которые требовали продвинутых навыков графического программирования. [2] Графические процессоры на базе CUDA также поддерживают такие среды программирования, как OpenMP , OpenACC и OpenCL ; [3] [1] и HIP путем компиляции такого кода в CUDA.

CUDA была создана Nvidia . [4] Когда оно было впервые представлено, это название было аббревиатурой от Compute Unified Device Architecture, [5] но позже Nvidia отказалась от обычного использования этой аббревиатуры. [ когда? ]

Фон

Графический процессор (GPU) в качестве специализированного компьютерного процессора отвечает требованиям ресурсоемких задач обработки трехмерной графики высокого разрешения в реальном времени . К 2012 году графические процессоры превратились в высокопараллельные многоядерные системы, позволяющие эффективно манипулировать большими блоками данных. Эта конструкция более эффективна, чем центральный процессор (ЦП) общего назначения для алгоритмов в ситуациях, когда обработка больших блоков данных выполняется параллельно, например:

Ян Бак, находясь в Стэнфорде в 2000 году, создал игровую установку 8K с использованием 32 карт GeForce, а затем получил грант DARPA на выполнение параллельного программирования общего назначения на графических процессорах . Затем он присоединился к Nvidia, где с 2004 года курирует разработку CUDA. Продвигая CUDA, Дженсен Хуанг стремился к тому, чтобы графические процессоры Nvidia стали основным оборудованием для научных вычислений. CUDA был выпущен в 2006 году. Примерно в 2015 году фокус CUDA сместился на нейронные сети. [6]

Онтология

В следующей таблице представлено неточное описание онтологии платформы CUDA.

Способности программирования

Пример потока обработки CUDA
  1. Копирование данных из основной памяти в память графического процессора
  2. ЦП запускает вычислительное ядро ​​графического процессора
  3. Ядра CUDA графического процессора выполняют ядро ​​параллельно.
  4. Скопируйте полученные данные из памяти графического процессора в основную память.

Платформа CUDA доступна разработчикам программного обеспечения через библиотеки с ускорением CUDA, директивы компилятора , такие как OpenACC , и расширения стандартных языков программирования, включая C , C++ и Fortran . Программисты C/C++ могут использовать «CUDA C/C++», скомпилированный в PTX с помощью nvcc , компилятора C/C++ на базе LLVM от Nvidia или самого clang. [7] Программисты на Фортране могут использовать «CUDA Fortran», скомпилированный с помощью компилятора PGI CUDA Fortran от The Portland Group . [ нужно обновить ]

Помимо библиотек, директив компилятора, CUDA C/C++ и CUDA Fortran, платформа CUDA поддерживает другие вычислительные интерфейсы, включая OpenCL от Khronos Group , [8] Microsoft DirectCompute , OpenGL Compute Shader и C++ AMP . [9] Сторонние оболочки также доступны для Python , Perl , Fortran, Java , Ruby , Lua , Common Lisp , Haskell , R , MATLAB , IDL , Julia и встроенная поддержка в Mathematica .

В индустрии компьютерных игр графические процессоры используются для рендеринга графики и для расчетов физики игр (физические эффекты, такие как мусор, дым, огонь, жидкости); примеры включают PhysX и Bullet . CUDA также использовалась для ускорения неграфических приложений в вычислительной биологии , криптографии и других областях на порядок и более. [10] [11] [12] [13] [14]

CUDA предоставляет как API низкого уровня ( API драйвера CUDA , не с одним исходным кодом), так и API более высокого уровня ( API среды выполнения CUDA , с одним исходным кодом). Первоначальный пакет CUDA SDK был обнародован 15 февраля 2007 года для Microsoft Windows и Linux . Поддержка Mac OS X была позже добавлена ​​в версии 2.0, [15] которая заменяет бета-версию, выпущенную 14 февраля 2008 года. [16] CUDA работает со всеми графическими процессорами Nvidia, начиная с серии G8x, включая GeForce , Quadro и линейку Tesla . CUDA совместима с большинством стандартных операционных систем.

CUDA 8.0 поставляется со следующими библиотеками (для компиляции и выполнения, в алфавитном порядке):

CUDA 8.0 поставляется со следующими программными компонентами:

CUDA 9.0–9.2 поставляется со следующими компонентами:

CUDA 10 поставляется со следующими компонентами:

CUDA 11.0–11.8 поставляется со следующими компонентами: [17] [18] [19] [20]

Преимущества

CUDA имеет ряд преимуществ перед традиционными вычислениями общего назначения на графических процессорах (GPGPU) с использованием графических API:

Ограничения

Пример

Этот пример кода на C++ загружает текстуру из изображения в массив на графическом процессоре:

текстура < float , 2 , cudaReadModeElementType > tex ;   void foo () { cudaArray * cu_array ;    // Выделяем массив cudaChannelFormatDesc описание = cudaCreateChannelDesc < float > (); cudaMallocArray ( & cu_array , & описание , ширина , высота );         // Копируем данные изображения в массив cudaMemcpyToArray ( cu_array , image , width * height * sizeof ( float ), cudaMemcpyHostToDevice );     // Устанавливаем параметры текстуры (по умолчанию) tex . AddressMode [ 0 ] = cudaAddressModeClamp ; текс . AddressMode [ 1 ] = cudaAddressModeClamp ; текс . filterMode = cudaFilterModePoint ; текс . нормализовано = ложь ; // не нормализуем координаты              // Привязываем массив к текстуре cudaBindTextureToArray ( tex , cu_array );   // Запускаем ядро ​​dim3 blockDim ( 16 , 16 , 1 ); dim3gridDim ( ( ширина + blockDim.x - 1 ) /blockDim.x , ( высота + blockDim.y - 1 ) /blockDim.y,1 ) ; _ _ _ _ _ _ _ _ _ _ _ ядро <<< GridDim , BlockDim , 0 >>> ( d_data , высота , ширина );                           // Отвязываем массив от текстуры cudaUnbindTexture ( tex ); } //конец foo()  __global__ void kernel ( float * odata , int height , int width ) { unsigned int x = blockIdx . х * блокДим . х + идентификатор потока . Икс ; беззнаковое целое число y = blockIdx . y * blockDim . y + идентификатор потока . й ; if ( x < ширина && y < высота ) { float c = tex2D ( tex , x , y ); odata [ y * ширина + x ] = c ; } }                                        

Ниже приведен пример на Python , который вычисляет произведение двух массивов на графическом процессоре. Неофициальные привязки языка Python можно получить на PyCUDA . [33]

импортировать  pycuda.compiler  как  comp , импортировать  pycuda.driver  как  drv , импортировать  numpy, импортировать  pycuda.autoinitмод  =  комп . SourceModule ( """ __global__ void Multiple_them(float *dest, float *a, float *b) {  const int i = threadIdx.x;  dest[i] = a[i] * b[i]; } """ ) умножить_их  =  мод . get_function ( "умножить_их" )а  =  число . случайный . рандн ( 400 ) . astype ( numpy . float32 ) b  =  numpy . случайный . рандн ( 400 ) . astype ( numpy . float32 )место  =  число . Zeros_like ( a ) Multiple_them ( drv.Out ( dest ) , drv.In ( a ) , drv.In ( b ) , block = ( 400 , 1 , 1 ) ) _ _     печать ( адресат  -  a  *  b )

Дополнительные привязки Python для упрощения операций умножения матриц можно найти в программе pycublas . [34]

 импортировать  numpy из  pycublas  , импортировать  CUBLASMatrixA  =  CUBLASMatrix ( numpy . mat ([[ 1 ,  2 ,  3 ],  [ 4 ,  5 ,  6 ]],  numpy . float32 )) B  =  CUBLASMatrix ( numpy . mat ([[ 2 ,  3 ],  [ 4 ,  5 ] ] ,  [ 6 ,  7 ]],  numpy.float32 ) ) C = A * B print ( C. np_mat ( )))    

в то время как CuPy напрямую заменяет NumPy: [35]

импортный  купиа  =  купи . случайный . randn ( 400 ) b  =  купи . случайный . рандн ( 400 )dest  =  купи . нули_подобно ( а )печать ( адресат  -  a  *  b )

Поддерживаемые графические процессоры

Поддерживаемые версии CUDA Compute Capability для версии CUDA SDK и микроархитектуры (по кодовому названию):

Примечание. CUDA SDK 10.2 — это последняя официальная версия для macOS, поскольку в более новых версиях поддержка macOS не будет доступна.

Поддержка SDK CUDA Toolkit для версий Visual Studio. [48]
Поддержка SDK CUDA Toolkit для версий Visual Studio. [48]


Каждый SDK CUDA Toolkit поддерживает ряд версий компилятора для определенных операционных систем. Вот матрица CUDA Toolkit для поддержки Visual Studio:

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

'*' — продукция только OEM .

Особенности и характеристики версии

[56]

Типы данных

Примечание. Любые пропущенные строки или пустые записи отражают некоторый недостаток информации по конкретному элементу. [57]


Тензорные ядра

Примечание. Любые пропущенные строки или пустые записи отражают некоторый недостаток информации по конкретному элементу. [60] [61]

[69] [70] [71] [72]

Техническая спецификация

[83]

[84]

Многопроцессорная архитектура

[113]

Для получения дополнительной информации прочтите руководство по программированию Nvidia CUDA. [114]

Текущее и будущее использование архитектуры CUDA

Смотрите также

Рекомендации

  1. ^ аб Аби-Чахла, Феди (18 июня 2008 г.). «CUDA от Nvidia: конец процессора?». Аппаратное обеспечение Тома . Проверено 17 мая 2015 г.
  2. ^ Зунич, Питер (24 января 2018 г.). «CUDA против OpenCL против OpenGL». Видеомейкер . Проверено 16 сентября 2018 г.
  3. Ссылки _ Разработчик NVIDIA . 24 апреля 2013 г. Проверено 4 ноября 2019 г.
  4. ^ "Домашняя страница NVIDIA CUDA" . 18 июля 2017 г.
  5. ^ Шимпи, Ананд Лал; Уилсон, Дерек (8 ноября 2006 г.). «Nvidia GeForce 8800 (G80): графические процессоры, переработанные для DirectX 10». АнандТех . Проверено 16 мая 2015 г.
  6. ^ Витт, Стивен (27 ноября 2023 г.). «Как Nvidia Дженсена Хуанга способствует революции искусственного интеллекта». Житель Нью-Йорка . ISSN  0028-792X . Проверено 10 декабря 2023 г.
  7. ^ «Компилятор CUDA LLVM» . 7 мая 2012 г.
  8. ^ Первая демонстрация OpenCL на графическом процессоре на YouTube.
  9. ^ Демонстрация DirectCompute Ocean, работающая на графическом процессоре Nvidia CUDA, на YouTube
  10. ^ Василиадис, Гиоргос; Антонатос, Спирос; Полихронакис, Михалис; Маркатос, Евангелос П.; Иоаннидис, Сотирис (сентябрь 2008 г.). «Gnort: Высокопроизводительное обнаружение сетевых вторжений с использованием графических процессоров» (PDF) . Последние достижения в области обнаружения вторжений . Конспекты лекций по информатике. Том. 5230. стр. 116–134. дои : 10.1007/978-3-540-87403-4_7. ISBN 978-3-540-87402-7.
  11. ^ Шац, Майкл С.; Трапнелл, Коул; Делчер, Артур Л.; Варшней, Амитабх (2007). «Высокопроизводительное выравнивание последовательностей с использованием графических процессоров». БМК Биоинформатика . 8 : 474. дои : 10.1186/1471-2105-8-474 . ПМК 2222658 . ПМИД  18070356. 
  12. ^ Манавский, Светлин А.; Джорджио, Валле (2008). «CUDA-совместимые карты графического процессора как эффективные аппаратные ускорители для выравнивания последовательностей Смита-Уотермана». БМК Биоинформатика . 10 (Дополнение 2): S10. дои : 10.1186/1471-2105-9-S2-S10 . ПМК 2323659 . ПМИД  18387198. 
  13. ^ "Пирит - Код Google" .
  14. ^ «Используйте графический процессор Nvidia для научных вычислений» . БОИНК. 18 декабря 2008 г. Архивировано из оригинала 28 декабря 2008 г. Проверено 8 августа 2017 г.
  15. ^ «Комплект разработки программного обеспечения Nvidia CUDA (CUDA SDK) – примечания к выпуску версии 2.0 для MAC OS X» . Архивировано из оригинала 6 января 2009 г.
  16. ^ «CUDA 1.1 – теперь и на Mac OS X» . 14 февраля 2008 г. Архивировано из оригинала 22 ноября 2008 г.
  17. ^ «Раскрыты функции CUDA 11» . 14 мая 2020 г.
  18. ^ «CUDA Toolkit 11.1 представляет поддержку графических процессоров серий GeForce RTX 30 и Quadro RTX» . 23 сентября 2020 г.
  19. ^ «Улучшение распределения памяти с помощью новых функций NVIDIA CUDA 11.2» . 16 декабря 2020 г.
  20. ^ «Изучение новых возможностей CUDA 11.3» . 16 апреля 2021 г.
  21. ^ Зильберштейн, Марк; Шустер, Ассаф ; Гейгер, Дэн; Патни, Анджул; Оуэнс, Джон Д. (2008). «Эффективное вычисление произведений суммы на графических процессорах с помощью программно-управляемого кэша» (PDF) . Материалы 22-й ежегодной международной конференции по суперкомпьютерам – ICS '08 (PDF) . Материалы 22-й ежегодной международной конференции по суперкомпьютерам – ICS '08. стр. 309–318. дои : 10.1145/1375527.1375572. ISBN 978-1-60558-158-3.
  22. ^ «Руководство по программированию на CUDA C, версия 8.0» (PDF) . Зона разработчиков nVidia . Январь 2017. с. 19 . Проверено 22 марта 2017 г.
  23. ^ «NVCC принудительно компилирует C++ файлов .cu» . 29 ноября 2011 г.
  24. ^ Уайтхед, Натан; Фит-Флоря, Алекс. «Точность и производительность: числа с плавающей запятой и соответствие стандарту IEEE 754 для графических процессоров Nvidia» (PDF) . Нвидиа . Проверено 18 ноября 2014 г.
  25. ^ «Продукты с поддержкой CUDA» . Зона КУДА . Корпорация Нвидиа . Проверено 3 ноября 2008 г.
  26. ^ «Проект Coriander: компилируйте коды CUDA в OpenCL, запускайте повсюду» . Фороникс.
  27. ^ Перкинс, Хью (2017). «куда-он-кл» (PDF) . ИВОКЛ . Проверено 8 августа 2017 г.
  28. ^ «hughperkins/coriander: Создайте код NVIDIA® CUDA™ для устройств OpenCL™ 1.2» . Гитхаб. 6 мая 2019 г.
  29. ^ «Документация CU2CL» . chrec.cs.vt.edu .
  30. ^ "GitHub – возен/ЗЛУДА" . Гитхаб .
  31. ^ Ларабель, Майкл (12 февраля 2024 г.), «AMD незаметно профинансировала внешнюю реализацию CUDA, основанную на ROCm: теперь это открытый исходный код», Phoronix , получено 12 февраля 2024 г.
  32. ^ "GitHub - чип-spv/chipStar" . Гитхаб .
  33. ^ "Пикуда".
  34. Ссылки _ Архивировано из оригинала 20 апреля 2009 г. Проверено 8 августа 2017 г.
  35. ^ "КуПи" . Проверено 8 января 2020 г.
  36. ^ «Руководство по программированию NVIDIA CUDA. Версия 1.0» (PDF) . 23 июня 2007 г.
  37. ^ «Руководство по программированию NVIDIA CUDA. Версия 2.1» (PDF) . 8 декабря 2008 г.
  38. ^ «Руководство по программированию NVIDIA CUDA. Версия 2.2» (PDF) . 2 апреля 2009 г.
  39. ^ «Руководство по программированию NVIDIA CUDA. Версия 2.2.1» (PDF) . 26 мая 2009 г.
  40. ^ «Руководство по программированию NVIDIA CUDA. Версия 2.3.1» (PDF) . 26 августа 2009 г.
  41. ^ «Руководство по программированию NVIDIA CUDA. Версия 3.0» (PDF) . 20 февраля 2010 г.
  42. ^ «Руководство по программированию NVIDIA CUDA C. Версия 3.1.1» (PDF) . 21 июля 2010 г.
  43. ^ «Руководство по программированию NVIDIA CUDA C. Версия 3.2» (PDF) . 9 ноября 2010 г.
  44. ^ «Примечания к выпуску CUDA 11.0» . Разработчик NVIDIA .
  45. ^ «Примечания к выпуску CUDA 11.1» . Разработчик NVIDIA .
  46. ^ «Примечания к выпуску CUDA 11.5» . Разработчик NVIDIA .
  47. ^ «Примечания к выпуску CUDA 11.8» . Разработчик NVIDIA .
  48. ^ "Архив набора инструментов NVIDIA CUDA" . 28 февраля 2024 г.
  49. ^ «Характеристики NVIDIA Quadro NVS 420» . База данных графических процессоров TechPowerUp . 25 августа 2023 г.
  50. Ларабель, Майкл (29 марта 2017 г.). «NVIDIA внедряет поддержку графического процессора Tegra X2 в версии Nouveau» . Фороникс . Проверено 8 августа 2017 г.
  51. ^ Спецификации Nvidia Xavier на TechPowerUp (предварительные)
  52. ^ «Добро пожаловать — документация Jetson Linux Developer Guide 34.1» .
  53. ^ «NVIDIA представляет поддержку графического процессора Volta с открытым исходным кодом для своей SoC Xavier» .
  54. ^ "Архитектура NVIDIA Ады Лавлейс" .
  55. ^ Анализ архитектуры графического процессора Тьюринга с помощью микробенчмаркинга
  56. ^ «H.1. Функции и технические характеристики - Таблица 13. Поддержка функций в зависимости от вычислительной мощности» . docs.nvidia.com . Проверено 23 сентября 2020 г.
  57. ^ «Руководство по программированию CUDA C++» .
  58. ^ Fused-Multiply-Add, фактически выполнено, Dense Matrix
  59. ^ как SASS с версии 7.5, как PTX с версии 8.0
  60. ^ «Техническое описание. Серия NVIDIA Jetson AGX Orin» (PDF) . nvidia.com . Проверено 5 сентября 2023 г.
  61. ^ «Архитектура графического процессора NVIDIA Ampere GA102» (PDF) . nvidia.com . Проверено 5 сентября 2023 г.
  62. ^ В технических документах диаграммы куба Tensor Core представляют ширину единицы скалярного произведения в высоту (4 FP16 для Volta и Turing, 8 FP16 для A100, 4 FP16 для GA102, 16 FP16 для GH100). Два других измерения представляют количество единиц скалярного произведения (4x4 = 16 для Вольты и Тьюринга, 8x4 = 32 для Ампера и Хоппера). Полученные серые блоки представляют собой операции FMA FP16 за цикл. Pascal без ядра Tensor показан только для сравнения скорости, как и Volta V100 с типами данных, отличными от FP16.
  63. ^ «Информационный документ по архитектуре NVIDIA Turing» (PDF) . nvidia.com . Проверено 5 сентября 2023 г.
  64. ^ «Графический процессор NVIDIA с тензорным ядром» (PDF) . nvidia.com . Проверено 5 сентября 2023 г.
  65. ^ "Подробное описание архитектуры NVIDIA Hopper" . 22 марта 2022 г.
  66. ^ форма x преобразованный размер операнда, например, 2 тензорных ядра x 4x4x4xFP16/цикл = 256 байт/цикл
  67. ^ = продукт в первых 3 строках таблицы
  68. ^ = произведение двух предыдущих строк таблицы; форма: например, 8x8x4xFP16 = 512 байт
  69. ^ Сунь, Вэй; Ли, Анг; Гэн, Тонг; Стейк, Сандер; Капрал, Хенк (2023 г.). «Анализ тензорных ядер с помощью микротестов: задержка, пропускная способность и числовое поведение». Транзакции IEEE в параллельных и распределенных системах . 34 (1): 246–261. arXiv : 2206.02874 . дои : 10.1109/tpds.2022.3217824. S2CID  249431357.
  70. ^ «Выполнение параллельного потока ISA версии 7.7» .
  71. ^ Райхан, доктор медицины Аамир; Голи, Негар; Аамодт, Тор (2018). «Моделирование графических процессоров с поддержкой ускорителя глубокого обучения». arXiv : 1811.08309 [cs.MS].
  72. ^ "Архитектура NVIDIA Ады Лавлейс" .
  73. ^ форма x преобразованный размер операнда, например, 2 тензорных ядра x 4x4x4xFP16/цикл = 256 байт/цикл
  74. ^ = продукт в первых 3 строках таблицы
  75. ^ = произведение двух предыдущих строк таблицы; форма: например, 8x8x4xFP16 = 512 байт
  76. ^ Цзя, Чжэ; Маджиони, Марко; Смит, Джеффри; Даниэле Паоло Скарпацца (2019). «Анализ графического процессора NVidia Turing T4 с помощью микробенчмаркинга». arXiv : 1903.07486 [cs.DC].
  77. ^ Берджесс, Джон (2019). «RTX ON – графический процессор NVIDIA TURING». 31-й симпозиум IEEE Hot Chips 2019 (HCS) . стр. 1–27. дои : 10.1109/HOTCHIPS.2019.8875651. ISBN 978-1-7281-2089-8. S2CID  204822166.
  78. ^ Цзя, Чжэ; Маджиони, Марко; Смит, Джеффри; Даниэле Паоло Скарпацца (2019). «Анализ графического процессора NVidia Turing T4 с помощью микробенчмаркинга». arXiv : 1903.07486 [cs.DC].
  79. ^ Берджесс, Джон (2019). «RTX ON – графический процессор NVIDIA TURING». 31-й симпозиум IEEE Hot Chips 2019 (HCS) . стр. 1–27. дои : 10.1109/HOTCHIPS.2019.8875651. ISBN 978-1-7281-2089-8. S2CID  204822166.
  80. ^ зависит от устройства
  81. ^ "Тегра X1". 9 января 2015 г.
  82. ^ Архитектура графического процессора NVIDIA H100 с тензорным ядром
  83. ^ Ч.1. Функции и технические характеристики. Таблица 14. Технические характеристики по вычислительным возможностям.
  84. ^ Подробное описание архитектуры NVIDIA Hopper
  85. ^ может выполнять только 160 целочисленных инструкций согласно руководству по программированию.
  86. ^ 128 по данным [1]. 64 от ФП32 + 64 отдельных блока?
  87. ^ 64 ядрами FP32 и 64 гибкими ядрами FP32/INT.
  88. ^ «Руководство по программированию CUDA C++» .
  89. ^ 32 полосы FP32 объединяются в 16 полос FP64. Возможно, ниже в зависимости от модели.
  90. ^ поддерживается только 16 полосами FP32, они объединяются в 4 полосы FP64.
  91. ^ abcdef в зависимости от модели
  92. ^ Эффективная скорость, вероятно, через порты FP32. Нет описания реальных ядер FP64.
  93. ^ Также может использоваться для сложения и сравнения целых чисел.
  94. ^ 2 такта/инструкция для каждого раздела SM Берджесс, Джон (2019). «RTX ON – графический процессор NVIDIA TURING». 31-й симпозиум IEEE Hot Chips 2019 (HCS) . стр. 1–27. дои : 10.1109/HOTCHIPS.2019.8875651. ISBN 978-1-7281-2089-8. S2CID  204822166.
  95. ^ Дюрант, Люк; Жиру, Оливье; Харрис, Марк; Стэм, Ник (10 мая 2017 г.). «Внутри Volta: самый совершенный в мире графический процессор для центров обработки данных». Блог разработчиков NVIDIA .
  96. ^ Планировщики и диспетчеры имеют отдельные исполнительные блоки, в отличие от Ферми и Кеплера.
  97. ^ Диспетчеризация может перекрываться одновременно, если это занимает более одного цикла (когда количество исполнительных блоков меньше, чем 32/SM Partition)
  98. ^ Возможна двойная выпуск трубы MAD и трубы SFU.
  99. ^ Не более одного планировщика может выдать 2 инструкции одновременно. Первый планировщик отвечает за варпы с нечетными идентификаторами. Второй планировщик отвечает за варпы с четными ID.
  100. ^ ab только общая память, без кэша данных
  101. ^ общая память abcdef отдельная, но L1 включает в себя кэш текстур
  102. ^ «H.6.1. Архитектура». docs.nvidia.com . Проверено 13 мая 2019 г.
  103. ^ «Демистификация микроархитектуры графического процессора посредством микробенчмаркинга» (PDF) .
  104. ^ Цзя, Чжэ; Маджиони, Марко; Штайгер, Бенджамин; Скарпацца, Даниэле П. (2018). «Анализ архитектуры графического процессора NVIDIA Volta с помощью микробенчмаркинга». arXiv : 1804.06826 [cs.DC].
  105. ^ "Тегра X1". 9 января 2015 г.
  106. ^ Цзя, Чжэ; Маджиони, Марко; Смит, Джеффри; Даниэле Паоло Скарпацца (2019). «Анализ графического процессора NVidia Turing T4 с помощью микробенчмаркинга». arXiv : 1903.07486 [cs.DC].
  107. ^ «Анализ архитектуры графического процессора Ampere посредством микробенчмаркинга» .
  108. ^ Обратите внимание, что Цзя, Чжэ; Маджиони, Марко; Смит, Джеффри; Даниэле Паоло Скарпацца (2019). «Анализ графического процессора NVidia Turing T4 с помощью микробенчмаркинга». arXiv : 1903.07486 [cs.DC].не согласен и заявляет, что кэш инструкций L0 составляет 2 КБ на раздел SM и кэш инструкций L1 16 КБ на SM.
  109. ^ Цзя, Чжэ; Маджиони, Марко; Штайгер, Бенджамин; Скарпацца, Даниэле П. (2018). «Анализ архитектуры графического процессора NVIDIA Volta с помощью микробенчмаркинга». arXiv : 1804.06826 [cs.DC].
  110. ^ "Опкод Асферми" . Гитхаб .
  111. ^ ab для доступа только с текстурным движком
  112. ^ 25% отключено на RTX 4090.
  113. ^ «I.7. Вычислительные возможности 8.x» . docs.nvidia.com . Проверено 12 октября 2022 г.
  114. ^ «Приложение F. Характеристики и технические характеристики» (PDF) . (3,2 МБ) , стр. 148 из 175 (версия 5.0, октябрь 2012 г.).
  115. ^ «Биоинформатика nVidia CUDA: BarraCUDA» . БиоЦентрик . 19 июля 2019 г. Проверено 15 октября 2019 г.
  116. ^ «Часть V: Физическое моделирование». Разработчик NVIDIA . Проверено 11 сентября 2020 г.

дальнейшее чтение

Внешние ссылки