~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 5E707A49F6D76520AF4EAA05EDA2486C__1718264640 ✰
Заголовок документа оригинал.:
✰ General-purpose computing on graphics processing units - Wikipedia ✰
Заголовок документа перевод.:
✰ Вычисления общего назначения на графических процессорах — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/5e/6c/5e707a49f6d76520af4eaa05eda2486c.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/5e/6c/5e707a49f6d76520af4eaa05eda2486c__translat.html ✰
Дата и время сохранения документа:
✰ 20.06.2024 18:32:00 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 13 June 2024, at 10:44 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Вычисления общего назначения на графических процессорах — Википедия Jump to content

Вычисления общего назначения на графических процессорах

Из Википедии, бесплатной энциклопедии

Вычисления общего назначения на графических процессорах ( GPGPU или реже GPGP ) — это использование графического процессора (GPU), который обычно обрабатывает вычисления только для компьютерной графики , для выполнения вычислений в приложениях, традиционно обрабатываемых центральным процессором ( ПРОЦЕССОР). [1] [2] [3] [4] Использование нескольких видеокарт в одном компьютере или большого количества графических чипов еще больше усугубляет и без того параллельную природу обработки графики. [5]

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

Конвейеры GPGPU были разработаны в начале 21 века для обработки графики (например, для улучшения шейдеров ). Было обнаружено, что эти конвейеры хорошо соответствуют потребностям научных вычислений , и с тех пор они развивались в этом направлении.

История [ править ]

В принципе, любая произвольная булева функция , включая сложение, умножение и другие математические функции, может быть построена из функционально полного набора логических операторов. В 1987 году «Игра жизни» Конвея стала одним из первых примеров вычислений общего назначения, в которых использовался ранний потоковый процессор , называемый блиттером, для вызова специальной последовательности логических операций над битовыми векторами. [6]

Вычисления общего назначения на графических процессорах стали более практичными и популярными примерно после 2001 года, с появлением программируемых шейдеров и поддержки операций с плавающей запятой на графических процессорах. Примечательно, что задачи, связанные с матрицами и/или векторами – особенно с двух-, трех- или четырехмерными векторами – было легко перенести на графический процессор, который работает с исходной скоростью и поддерживает эти типы. Значимой вехой для GPGPU стал 2003 год, когда две исследовательские группы независимо друг от друга обнаружили подходы на основе графических процессоров для решения общих задач линейной алгебры на графических процессорах, которые работали быстрее, чем на центральных процессорах. [7] [8] Эти ранние попытки использовать графические процессоры в качестве процессоров общего назначения требовали переформулирования вычислительных задач с точки зрения графических примитивов, поддерживаемых двумя основными API для графических процессоров: OpenGL и DirectX . Этот громоздкий перевод был устранен с появлением языков программирования общего назначения и API, таких как Sh / RapidMind , Brook и Accelerator. [9] [10] [11]

За ними последовала технология CUDA от Nvidia , которая позволяла программистам игнорировать основные графические концепции в пользу более распространенных концепций высокопроизводительных вычислений . [12] К новым, независимым от производителя оборудования предложениям относятся DirectCompute от Apple/Khronos Group от Microsoft и OpenCL . [12] Это означает, что современные конвейеры GPGPU могут использовать скорость графического процессора, не требуя полного и явного преобразования данных в графическую форму.

Марк Харрис, основатель GPGPU.org, ввёл термин GPGPU .

Реализации [ править ]

Любой язык, который позволяет коду, работающему на ЦП, опрашивать шейдер графического процессора на предмет возвращаемых значений, может создать структуру GPGPU. Стандарты программирования для параллельных вычислений включают OpenCL (независимый от производителя), OpenACC , OpenMP и OpenHMPP .

По состоянию на 2016 год OpenCL — это доминирующий открытый язык вычислений на графических процессорах общего назначения, а также открытый стандарт, определенный Khronos Group . [ нужна цитата ] OpenCL предоставляет кросс-платформенную платформу GPGPU, которая дополнительно поддерживает параллельные вычисления данных на процессорах. OpenCL активно поддерживается на платформах Intel, AMD, Nvidia и ARM. Группа Khronos также стандартизировала и внедрила SYCL , модель программирования более высокого уровня для OpenCL как встраиваемого языка с единым исходным кодом, ориентированного на конкретную предметную область, на основе чистого C++11.

Доминирующей проприетарной платформой является Nvidia CUDA . [13] В 2006 году Nvidia выпустила CUDA, комплект разработки программного обеспечения (SDK) и интерфейс программирования приложений (API), который позволяет использовать язык программирования C для кодирования алгоритмов для выполнения на графических процессорах серии GeForce 8 и более поздних версий.

ROCm , выпущенный в 2016 году, представляет собой ответ AMD на CUDA с открытым исходным кодом. По состоянию на 2022 год он находится на одном уровне с CUDA в отношении функций, но все еще не имеет поддержки потребителей.

OpenVIDIA была разработана в Университете Торонто в период с 2003 по 2005 год. [14] в сотрудничестве с NVIDIA.

Altimesh Hybridizer, созданный Altimesh, компилирует Common Intermediate Language в двоичные файлы CUDA. [15] [16] Он поддерживает дженерики и виртуальные функции. [17] Отладка и профилирование интегрированы с Visual Studio и Nsight. [18] Он доступен как расширение Visual Studio на Visual Studio Marketplace.

Microsoft представила API вычислений DirectCompute на графическом процессоре, выпущенный вместе с API DirectX 11 .

Этот графический процессор , [19] создано QuantAlea, [20] представляет собственные вычислительные возможности графического процессора для языков Microsoft .NET F#. [21] и С# . Alea GPU также предоставляет упрощенную модель программирования графического процессора, основанную на параллельном и параллельном агрегировании графического процессора с использованием делегатов и автоматического управления памятью. [22]

MATLAB поддерживает ускорение GPGPU с использованием Parallel Computing Toolbox и MATLAB Distributed Computing Server . [23] и сторонние пакеты, такие как Jacket .

Обработка GPGPU также используется для моделирования физики Ньютона с помощью физических движков . [24] а коммерческие реализации включают Havok Physics, FX и PhysX , которые обычно используются для компьютерных и видеоигр .

C++ Accelerated Massive Parallelism ( C++ AMP ) — это библиотека, которая ускоряет выполнение кода C++ за счет использования аппаратного обеспечения параллельного обмена данными на графических процессорах.

Мобильные компьютеры [ править ]

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

Google Android 4.2 позволил запускать код RenderScript на графическом процессоре мобильного устройства. [25] Apple представила собственный Metal API для приложений iOS , способный выполнять произвольный код с помощью вычислительных шейдеров графического процессора Apple.

Аппаратная поддержка [ править ]

Компьютерные видеокарты производятся различными производителями, например, Nvidia , AMD . Карты таких производителей различаются по реализации поддержки форматов данных, таких как целочисленные форматы и форматы с плавающей запятой (32-битные и 64-битные). Microsoft представила стандарт модели шейдеров , чтобы помочь ранжировать различные функции графических карт по простому номеру версии модели шейдеров (1.0, 2.0, 3.0 и т. д.).

Целые числа [ править ]

Видеокарты до DirectX 9 поддерживали только палитровые или целочисленные типы цветов. Доступны различные форматы, каждый из которых содержит красный элемент, зеленый элемент и синий элемент. [ нужна цитата ] Иногда добавляется еще одно значение альфа, которое используется для прозрачности. Общие форматы:

  • 8 бит на пиксель — иногда режим палитры, где каждое значение представляет собой индекс в таблице с реальным значением цвета, указанным в одном из других форматов. Иногда три бита для красного, три бита для зеленого и два бита для синего.
  • 16 бит на пиксель. Обычно биты выделяются как пять бит для красного, шесть бит для зеленого и пять бит для синего.
  • 24 бита на пиксель. Для красного, зеленого и синего цветов по восемь бит.
  • 32 бита на пиксель — по восемь битов для каждого из красного, зеленого, синего и альфа-канала .

Числа с плавающей запятой [ править ]

Для ранней графики с фиксированными функциями или ограниченной программируемостью (т. е. вплоть до графических процессоров, совместимых с DirectX 8.1) этого было достаточно, поскольку такое представление также используется в дисплеях. Это представление имеет определенные ограничения. При наличии достаточной мощности графической обработки даже графические программисты хотели бы использовать лучшие форматы, такие как форматы данных с плавающей запятой , для получения таких эффектов, как визуализация с расширенным динамическим диапазоном . Многие приложения GPGPU требуют точности с плавающей запятой, которая имеется в видеокартах, соответствующих спецификации DirectX 9.

Модель шейдеров DirectX 9 2.x предлагала поддержку двух типов точности: полной и частичной точности. Поддержка полной точности может быть FP32 или FP24 (32- или 24-битная с плавающей запятой на компонент) или выше, а частичная точность — FP16. Серия графических процессоров ATI Radeon R300 поддерживала точность FP24 только в конвейере программируемых фрагментов (хотя FP32 поддерживалась в вершинных процессорах), тогда как Nvidia от серия NV30 поддерживала как FP16, так и FP32; другие поставщики, такие как S3 Graphics и XGI, поддерживали смесь форматов до FP24.

Реализации операций с плавающей запятой на графических процессорах Nvidia в основном совместимы с IEEE ; однако это справедливо не для всех поставщиков. [26] Это имеет последствия для корректности, которая считается важной для некоторых научных приложений. Хотя 64-битные значения с плавающей запятой (с плавающей запятой двойной точности) обычно доступны на процессорах, они не поддерживаются повсеместно на графических процессорах. Некоторые архитектуры графических процессоров жертвуют соответствием IEEE, а в других отсутствует двойная точность. Были предприняты попытки эмулировать значения с плавающей запятой двойной точности на графических процессорах; однако компромисс в скорости в первую очередь сводит на нет любую выгоду от разгрузки вычислений на графический процессор. [27]

Векторизация [ править ]

Большинство операций на графическом процессоре выполняются векторизованным образом: одна операция может выполняться одновременно с четырьмя значениями. Например, если один цвет ⟨R1, G1, B1⟩ должен быть модулирован другим цветом ⟨R2, G2, B2⟩ , графический процессор может создать результирующий цвет ⟨R1*R2, G1*G2, B1*B2⟩ за один операция. Эта функция полезна в графике, поскольку почти каждый базовый тип данных является вектором (2-, 3- или 4-мерным). [ нужна цитата ] Примеры включают вершины, цвета, векторы нормалей и координаты текстуры. Многие другие приложения могут найти этому хорошее применение, и из-за их более высокой производительности векторные инструкции, называемые «одна инструкция, несколько данных» ( SIMD ), уже давно доступны в процессорах. [ нужна цитата ]

Графический процессор против процессора [ править ]

Первоначально данные просто передавались в одном направлении от центрального процессора (ЦП) к графическому процессору (ГП), а затем к устройству отображения . Однако с течением времени для графических процессоров стало полезно хранить сначала простые, а затем сложные структуры данных, которые должны были передаваться обратно в процессор, который анализировал изображение, или набор научных данных, представленных в формате 2D или 3D, которые видеокарта понимает. Поскольку графический процессор имеет доступ к каждой операции рисования, он может быстро анализировать данные в этих формах, тогда как ЦП должен опрашивать каждый пиксель или элемент данных гораздо медленнее, поскольку скорость доступа между ЦП и его большим пулом оперативной памяти (или, в худшем случае, жесткий диск ) медленнее, чем графические процессоры и видеокарты, которые обычно содержат меньшие объемы более дорогой памяти, доступ к которой осуществляется гораздо быстрее. Перенос части набора данных, подлежащей активному анализу, в память этого графического процессора в виде текстур или других легко читаемых форм графического процессора приводит к увеличению скорости. Отличительной особенностью конструкции GPGPU является возможность передачи информации. двунаправленно обратно от графического процессора к процессору; Обычно пропускная способность данных в обоих направлениях идеально высока, что приводит к мультипликативному эффекту на скорости конкретного часто используемого алгоритма . Конвейеры GPGPU могут повысить эффективность работы с особенно большими наборами данных и/или данными, содержащими 2D- или 3D-изображения. Он используется в сложных графических конвейерах, а также в научных вычислениях ; тем более в областях с большими наборами данных, таких как картирование генома , или там, где полезен двух- или трехмерный анализ – особенно в настоящее время анализ биомолекул , исследование белков и другая сложная органическая химия . Такие конвейеры также могут значительно повысить эффективность обработки изображений и компьютерного зрения , а также других областей; а также параллельная обработка в целом. Некоторые очень сильно оптимизированные конвейеры привели к увеличению скорости в несколько сотен раз по сравнению с исходным конвейером на базе ЦП при выполнении одной интенсивно используемой задачи.

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

GPGPU — это, по сути, концепция программного обеспечения, а не аппаратного обеспечения; это тип алгоритма , а не часть оборудования. Однако специализированные конструкции оборудования могут еще больше повысить эффективность конвейеров GPGPU, которые традиционно выполняют относительно небольшое количество алгоритмов с очень большими объемами данных. Массивно распараллеленные задачи на уровне гигантских данных могут быть распараллелены еще больше с помощью специализированных установок, таких как стоечные вычисления (множество похожих, узкоспециализированных машин, встроенных в стойку ), что добавляет третий уровень - множество вычислительных блоков, каждый из которых использует много ЦП для соответствия. ко многим графическим процессорам. Некоторые биткойн -майнеры использовали такие установки для обработки больших объемов.

Тайники [ править ]

Исторически процессоры использовали кэши , управляемые аппаратно , но более ранние графические процессоры предоставляли только локальную память, управляемую программно. Однако, поскольку графические процессоры все чаще используются для приложений общего назначения, современные графические процессоры разрабатываются с аппаратно управляемым многоуровневым кэшем, что помогло графическим процессорам перейти к массовым вычислениям. Например, графические процессоры серии GeForce 200 с архитектурой GT200 не имели кэша L2, графический процессор Fermi имеет кэш последнего уровня 768 КиБ, графический процессор Kepler имеет кэш последнего уровня 1,5 МБ, [28] Графический процессор Maxwell имеет кэш последнего уровня объемом 2 МБ, а графический процессор Pascal имеет кэш последнего уровня объемом 4 МБ.

Регистрационный файл [ править ]

Графические процессоры имеют очень большие файлы регистров , что позволяет им уменьшить задержку переключения контекста. Размер файла регистров также увеличивается в зависимости от поколения графических процессоров, например, общий размер файла регистров на графических процессорах Maxwell (GM200), Pascal и Volta составляет 6 МБ, 14 МБ и 20 МБ соответственно. [29] [30] Для сравнения, размер файла регистров на процессорах невелик, обычно составляет десятки или сотни килобайт.

Энергоэффективность [ править ]

Высокая производительность графических процессоров достигается за счет высокого энергопотребления, которое при полной нагрузке фактически равно мощности всей остальной системы ПК вместе взятой. [31] Максимальная потребляемая мощность графического процессора серии Pascal (Tesla P100) составила 250 Вт. [32]

Потоковая обработка [ править ]

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

Следующее обсуждение вершин, фрагментов и текстур касается в основном устаревшей модели программирования GPGPU, где графические API ( OpenGL или DirectX ) использовались для выполнения вычислений общего назначения. С появлением API-интерфейсов вычислений общего назначения CUDA (Nvidia, 2007 г.) и OpenCL (независимый от поставщика, 2008 г.) в новых кодах GPGPU больше нет необходимости сопоставлять вычисления с графическими примитивами. Характер потоковой обработки графических процессоров остается действительным независимо от используемых API. (См., например, [33] )

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

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

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

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

Концепции программирования графического процессора [ править ]

Вычислительные ресурсы [ править ]

На графическом процессоре доступны различные вычислительные ресурсы:

  • Программируемые процессоры — вершинные, примитивные, фрагментные и, в основном, вычислительные конвейеры позволяют программисту выполнять ядро ​​над потоками данных.
  • Растеризатор — создает фрагменты и интерполирует константы для каждой вершины, такие как координаты текстуры и цвет.
  • Текстурный блок – интерфейс постоянной памяти
  • Framebuffer – интерфейс памяти только для записи.

Фактически, программа может заменить на вывод текстуру, предназначенную только для записи, вместо кадрового буфера. Это делается либо с помощью рендеринга в текстуру (RTT), рендеринга в буфер-буфер-копирование-в-текстуру (RTBCTT), либо более позднего потокового вывода.

Текстуры в виде потока [ править ]

Наиболее распространенной формой потока в GPGPU является 2D-сетка, поскольку она естественным образом соответствует модели рендеринга, встроенной в графические процессоры. Многие вычисления естественным образом отображаются в сетках: матричная алгебра, обработка изображений, физическое моделирование и т. д.

Поскольку текстуры используются в качестве памяти, поиск текстур затем используется при чтении из памяти. Из-за этого некоторые операции могут выполняться графическим процессором автоматически.

Ядра [ править ]

Вычислительные ядра можно рассматривать как тело циклов . Например, программист, работающий с сеткой ЦП, может иметь код, который выглядит следующим образом:

// Входные и выходные сетки имеют размер 10000 x 10000 или 100 миллионов элементов. 

  void   Transform_10k_by_10k_grid  (  float   in  [  10000  ][  10000  ],   float   out  [  10000  ][  10000  ]) 
 { 
     for   (  int   x   =   0  ;   x   <   10000  ;   x  ++  )   { 
         for   (  int   y   =   0  ;   y   <   10000  ;   y  ++  )   { 
             // Следующая строка выполняется 100 миллионов раз 
             out  [  x  ][  y  ]   =   do_some_hard_work  (  in  [  x  ][  y  ]); 
          } 
     } 
 } 

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

Управление потоком [ править ]

В последовательном коде можно управлять ходом программы с помощью операторов if-then-else и различных форм циклов. Такие структуры управления потоком данных были добавлены в графические процессоры совсем недавно. [35] Условная запись могла выполняться с использованием правильно созданной серии арифметических/битовых операций, но циклы и условное ветвление были невозможны.

Последние графические процессоры допускают ветвление, но обычно со снижением производительности. Обычно следует избегать ветвления во внутренних циклах, будь то в коде ЦП или графического процессора, а также в различных методах, таких как статическое разрешение ветвей, предварительные вычисления, предсказание, разделение цикла и т. д. [36] и Z-отбраковка [37] может использоваться для достижения ветвления, когда аппаратная поддержка не существует.

Методы графического процессора [ править ]

Карта [ править ]

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

Уменьшить [ править ]

Некоторые вычисления требуют вычисления меньшего потока (возможно, потока, состоящего только из одного элемента) из большего потока. Это называется уменьшением потока. Обычно сокращение может выполняться в несколько этапов. Результаты предыдущего шага используются в качестве входных данных для текущего шага, а диапазон, в котором применяется операция, сокращается до тех пор, пока не останется только один элемент потока.

Фильтрация потока [ править ]

Потоковая фильтрация по сути представляет собой неравномерное сокращение. Фильтрация предполагает удаление элементов из потока на основе некоторых критериев.

Сканировать [ править ]

Операция сканирования, также называемая суммой параллельного префикса , принимает вектор (поток) элементов данных и (произвольную) ассоциативную бинарную функцию «+» с единичным элементом «i» . Если входные данные [a0, a1, a2, a3, ...], эксклюзивное сканирование дает выходные данные [i, a0, a0 + a1, a0 + a1 + a2, ...], тогда как инклюзивное сканирование дает выведите [a0, a0 + a1, a0 + a1 + a2, a0 + a1 + a2 + a3, ...] и не требует существования идентификатора. Хотя на первый взгляд операция может показаться последовательной, эффективные алгоритмы параллельного сканирования возможны и реализованы в графических процессорах. Операция сканирования используется, например, в быстрой сортировке и умножении разреженной матрицы на вектор. [33] [38] [39] [40]

Разброс [ править ]

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

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

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

Собрать [ править ]

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

Сортировать [ править ]

Операция сортировки преобразует неупорядоченный набор элементов в упорядоченный набор элементов. Наиболее распространенной реализацией на графических процессорах является использование поразрядной сортировки для целочисленных данных и данных с плавающей запятой, а также сетей грубой сортировки слиянием мелкой сортировки и сетей для общих сопоставимых данных. [41] [42]

Поиск [ править ]

Операция поиска позволяет программисту найти данный элемент в потоке или, возможно, найти соседей указанного элемента. Графический процессор не используется для ускорения поиска отдельного элемента, а вместо этого используется для параллельного выполнения нескольких поисков. [ нужна цитата ] Чаще всего используемый метод поиска — это двоичный поиск по отсортированным элементам.

Структуры данных [ править ]

На графическом процессоре могут быть представлены различные структуры данных:

Приложения [ править ]

Ниже приведены некоторые области, в которых графические процессоры использовались для вычислений общего назначения:

Биоинформатика [ править ]

Использование GPGPU в биоинформатике: [57] [81]

Приложение Описание Поддерживаемые функции Ожидаемое ускорение† графический процессор‡ Поддержка нескольких графических процессоров Статус выпуска
БарраКУДА ДНК, включая эпигенетику, программное обеспечение для картирования последовательностей [82] Выравнивание коротких считываний секвенирования 6–10 раз Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 0.7.107f.
КУДАСВ++ Программное обеспечение с открытым исходным кодом для поиска в базе данных белков Смита-Уотермана на графических процессорах Параллельный поиск в базе данных Смита-Уотермана 10–50x Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 2.0.8.
КУШО Параллелизованный выравниватель короткого считывания Параллельный, точный выравниватель длинного считывания – выравнивание с пробелами в больших геномах 10x Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 1.0.40.
GPU-ВЗРЫВ Локальный поиск с быстрой эвристикой k -кортежей Выравнивание белков в соответствии с blastp, многопроцессорными потоками 3–4 раза Т 2075, 2090, К10, К20, К20Х Только одинокий Доступна сейчас версия 2.2.26.
GPU-HMMER Параллелизованный локальный и глобальный поиск со скрытыми марковскими моделями профиля. Параллельный локальный и глобальный поиск скрытых марковских моделей. 60–100x Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 2.3.2.
mCUDA-MEME Сверхбыстрый масштабируемый алгоритм обнаружения мотивов на основе MEME Масштабируемый алгоритм обнаружения мотивов на основе MEME 4–10 раз Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 3.0.12.
SeqNFind Набор инструментов для анализа последовательностей с ускорением на графическом процессоре Эталонная сборка, взрыв, Смит-Уотерман, хм, сборка de novo 400x Т 2075, 2090, К10, К20, К20Х Да Доступен сейчас
НЕДЕЛИ Смит-Уотерман с открытым исходным кодом для SSE/CUDA, поиск повторов на основе суффиксного массива и точечная диаграмма Быстрое выравнивание короткого чтения 6–8x Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 1.11.
WideLM Подходит для многочисленных линейных моделей с фиксированной конструкцией и откликом. Параллельная линейная регрессия на нескольких моделях одинаковой формы 150x Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 0.1-1.

Молекулярная динамика [ править ]

Приложение Описание Поддерживаемые функции Ожидаемое ускорение† графический процессор‡ Поддержка нескольких графических процессоров Статус выпуска
Морское ушко Моделирует молекулярную динамику биополимеров для моделирования белков, ДНК и лигандов. Явный и неявный растворитель, гибрид Монте-Карло 4–120x Т 2075, 2090, К10, К20, К20Х Только одинокий Доступна сейчас версия 1.8.88.
АСЕМД Графическое моделирование силовых полей молекулярной механики, неявный и явный растворитель Написано для использования на графических процессорах Только версия с графическим процессором 160 нс/день Т 2075, 2090, К10, К20, К20Х Да Доступен сейчас
ЯНТАРЬ Набор программ для моделирования молекулярной динамики биомолекул PMEMD: явный и неявный растворитель 89,44 нс/сут JAC NVE Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 12 + исправление ошибок 9.
ДЛ-ПОЛИ Моделирование макромолекул, полимеров, ионных систем и т. д. на параллельном компьютере с распределенной памятью. Двухчастичные силы, пары ячеек связи, силы Эвальда SPME, Шейк В.В. 4x Т 2075, 2090, К10, К20, К20Х Да Доступно сейчас, только исходный код версии 4.0.
ШАРММ Пакет MD для моделирования молекулярной динамики биомолекул. Неявный (5x), явный (2x) растворитель через OpenMM подлежит уточнению Т 2075, 2090, К10, К20, К20Х Да В разработке, 4 квартал 2012 г.
ГРОМАКС Моделирование биохимических молекул со сложными взаимодействиями связей Неявный (5x), явный (2x) растворитель 165 нс/день DHFR Т 2075, 2090, К10, К20, К20Х Только одинокий Доступна сейчас, версия 4.6 в четвертом квартале 2012 г.
HOOMD-Синий Написан пакет динамики частиц для графических процессоров Написано для графических процессоров 2x Т 2075, 2090, К10, К20, К20Х Да Доступен сейчас
ЛАММПС Пакет классической молекулярной динамики Леннард-Джонс, Морс, Бэкингем, CHARMM, табличные, зернистые SDK, анизотропные Гей-Берна, RE-квадрат, «гибридные» комбинации 3–18x Т 2075, 2090, К10, К20, К20Х Да Доступен сейчас
НАМД Предназначен для высокопроизводительного моделирования крупных молекулярных систем. Способность атома 100M 6,44 нс/сутки STMV 585x 2050 с Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 2.9.
ОпенММ Библиотека и приложение по молекулярной динамике для HPC с графическими процессорами Неявная и явная платежеспособность, таможенные силы Неявный: 127–213 нс/день; Явный: 18–55 нс/день DHFR. Т 2075, 2090, К10, К20, К20Х Да Доступна сейчас версия 4.1.1.

† Ожидаемое ускорение во многом зависит от конфигурации системы. Производительность графического процессора по сравнению с многоядерным x86 процессором . Производительность графического процессора оценивается на основе функций, поддерживаемых графическим процессором, и может представлять собой . сравнение производительности ядра между ядрами Подробную информацию об используемой конфигурации см. на веб-сайте приложения. Ускорение согласно внутреннему тестированию Nvidia или документации независимого поставщика ПО.

‡ Q = графический процессор Quadro , T = графический процессор Tesla . Nvidia рекомендовала графические процессоры для этого приложения. Чтобы получить информацию о сертификации, обратитесь к разработчику или независимому поставщику программного обеспечения.

См. также [ править ]

Ссылки [ править ]

  1. ^ Фунг, Джеймс; Тан, Феликс; Манн, Стив (7–10 октября 2002 г.). Опосредованная реальность с использованием компьютерного графического оборудования для компьютерного зрения (PDF) . Материалы Международного симпозиума по портативным компьютерам 2002 г. (ISWC2002). Сиэтл, Вашингтон, США. стр. 83–89. Архивировано из оригинала (PDF) 2 апреля 2012 года.
  2. ^ Эймоне, Крис; Фунг, Джеймс; Манн, Стив (2003). «Оценка безликого проекционного движения на основе видео Eye Tap с помощью гироскопического отслеживания для реальности, опосредованной портативным компьютером» . Персональные и повсеместные вычисления . 7 (5): 236–248. дои : 10.1007/s00779-003-0239-6 . S2CID   25168728 .
  3. ^ «Обработка сигналов компьютерного зрения на графических процессорах», Материалы Международной конференции IEEE по акустике, речи и обработке сигналов (ICASSP 2004). Архивировано 19 августа 2011 г. в Wayback Machine : Монреаль, Квебек, Канада, 17–21 мая 2004 г. , стр. В-93 – В-96.
  4. ^ Читти, DM (2007, июль). Параллельный подход к генетическому программированию с использованием программируемого графического оборудования. Архивировано 8 августа 2017 года на Wayback Machine . В материалах 9-й ежегодной конференции по генетическим и эволюционным вычислениям (стр. 1566–1573). АКМ.
  5. ^ «Использование нескольких видеокарт в качестве параллельного компьютера общего назначения: приложения к компьютерному зрению», материалы 17-й Международной конференции по распознаванию образов (ICPR2004). Архивировано 18 июля 2011 г. в Wayback Machine , Кембридж, Великобритания, 23–26 августа 2004 г. , том 1, страницы 805–808.
  6. ^ Халл, Джеральд (декабрь 1987 г.). "ЖИЗНЬ" . Удивительные вычисления . 2 (12): 81–84.
  7. ^ Крюгер, Йенс; Вестерманн, Рюдигер (июль 2003 г.). «Операторы линейной алгебры для реализации численных алгоритмов на графических процессорах» . Транзакции ACM с графикой . 22 (3): 908–916. дои : 10.1145/882262.882363 . ISSN   0730-0301 .
  8. ^ Больц, Джефф; Фармер, Ян; Гринспан, Эйтан; Шредер, Питер (июль 2003 г.). «Решатели разреженных матриц на графическом процессоре: сопряженные градиенты и многосетка» . Транзакции ACM с графикой . 22 (3): 917–924. дои : 10.1145/882262.882364 . ISSN   0730-0301 .
  9. ^ Тардити, Дэвид; Пури, Сидд; Оглсби, Хосе (2006). «Ускоритель: использование параллелизма данных для программирования графических процессоров общего назначения» (PDF) . Новости компьютерной архитектуры ACM SIGARCH . 34 (5). дои : 10.1145/1168919.1168898 .
  10. ^ Че, Шуай; Бойер, Майкл; Мэн, Цзяюань; Тарьян, Д.; Шиффер, Джереми В.; Скадрон, Кевин (2008). «Исследование производительности приложений общего назначения на графических процессорах с использованием CUDA». J. Параллельные и распределенные вычисления . 68 (10): 1370–1380. CiteSeerX   10.1.1.143.4849 . дои : 10.1016/j.jpdc.2008.05.014 .
  11. ^ Глейзер, Дж.; Нгуен, ТД; Андерсон, Дж.А.; Луи, П.; Спига, Ф.; Миллан, Дж.А.; Морс, округ Колумбия; Глотцер, Южная Каролина (2015). «Сильное масштабирование моделирования молекулярной динамики общего назначения на графических процессорах» . Компьютерная физика. Коммуникации . 192 : 97–107. arXiv : 1412.3387 . Бибкод : 2015CoPhC.192...97G . дои : 10.1016/j.cpc.2015.02.028 .
  12. ^ Перейти обратно: а б Ду, Пэн; Вебер, Рик; Лущек, Петр; Томов, Станимир; Петерсон, Грегори; Донгарра, Джек (2012). «От CUDA к OpenCL: на пути к портативному решению для многоплатформенного программирования на графических процессорах». Параллельные вычисления . 38 (8): 391–407. CiteSeerX   10.1.1.193.7712 . дои : 10.1016/j.parco.2011.10.002 .
  13. ^ «OpenCL укрепляет позиции на CUDA» . 28 февраля 2012 года. Архивировано из оригинала 23 апреля 2012 года . Проверено 10 апреля 2012 г. «Как две основные среды программирования для вычислений на графических процессорах, OpenCL и CUDA последние несколько лет конкурируют за долю внимания в сообществе разработчиков».
  14. ^ Джеймс Фунг, Стив Манн, Крис Эймон, « OpenVIDIA: Компьютерное зрение с параллельным графическим процессором, архивировано 23 декабря 2019 года в Wayback Machine », Труды ACM Multimedia 2005, Сингапур, 6–11 ноября 2005 г., страницы 849–852
  15. ^ «Гибридизатор» . Гибридизатор . Архивировано из оригинала 17 октября 2017 года.
  16. ^ «Главная страница» . Альтимеш . Архивировано из оригинала 17 октября 2017 года.
  17. ^ «Дженериковые гибридизаторы и наследование» . 27 июля 2017 г. Архивировано из оригинала 17 октября 2017 г.
  18. ^ «Отладка и профилирование с помощью Hybridizer» . 5 июня 2017 г. Архивировано из оригинала 17 октября 2017 г.
  19. ^ "Введение" . Алея ГПУ . Архивировано из оригинала 25 декабря 2016 года . Проверено 15 декабря 2016 г.
  20. ^ «Главная страница» . Квант Алеа . Архивировано из оригинала 12 декабря 2016 года . Проверено 15 декабря 2016 г.
  21. ^ «Используйте F# для программирования графического процессора» . Фонд программного обеспечения F#. Архивировано из оригинала 18 декабря 2016 года . Проверено 15 декабря 2016 г.
  22. ^ «Особенности графического процессора Alea» . Квант Алеа . Архивировано из оригинала 21 декабря 2016 года . Проверено 15 декабря 2016 г.
  23. ^ «MATLAB добавляет поддержку GPGPU» . 20 сентября 2010 г. Архивировано из оригинала 27 сентября 2010 г.
  24. ^ Перейти обратно: а б Джоселли, Марк и др. " Новый физический движок с автоматическим распределением процессов между CPU-GPU [ мертвая ссылка ] .. Материалы симпозиума ACM SIGGRAPH 2008 года по видеоиграм. ACM, 2008.
  25. ^ «API Android 4.2 — Разработчики Android» . Developer.android.com . Архивировано из оригинала 26 августа 2013 года.
  26. ^ Харрис, Марк (2005). «Сопоставление вычислительных концепций с графическими процессорами» . Курсы ACM SIGGRAPH 2005 - SIGGRAPH '05 . стр. 50–е. дои : 10.1145/1198555.1198768 . ISBN  9781450378338 . S2CID   8212423 .
  27. ^ Двойная точность в графических процессорах (Материалы ASIM 2005). Архивировано 21 августа 2014 года в Wayback Machine : Доминик Годдеке, Роберт Стрзодка и Стефан Турек. Ускорение моделирования двойной точности (FEM) с помощью (GPU). Материалы ASIM 2005 - 18-го симпозиума по технике моделирования, 2005 г.
  28. ^ «Nvidia-Kepler-GK110-Архитектура-Белая книга» (PDF) . Архивировано (PDF) из оригинала 21 февраля 2015 года.
  29. ^ « Внутри Паскаля: новейшая вычислительная платформа Nvidia. Архивировано 7 мая 2017 года в Wayback Machine »
  30. ^ « Внутри Volta: самый продвинутый в мире графический процессор для центров обработки данных. Архивировано 1 января 2020 года в Wayback Machine »
  31. ^ " https://www.tomshardware.com/reviews/geforce-radeon-power,2122.html Сколько энергии нужно вашей видеокарте?"
  32. ^ " https://images.nvidia.com/content/tesla/pdf/nvidia-tesla-p100-PCIe-datasheet.pdf Nvidia Ускоритель графического процессора Tesla P100. Архивировано 24 июля 2018 года в Wayback Machine .
  33. ^ Перейти обратно: а б «Д. Гёддеке, 2010. Быстрые и точные многосеточные решатели конечных элементов для моделирования PDE на кластерах графических процессоров. Кандидатская диссертация, Технический университет Дортмунда» . Архивировано из оригинала 16 декабря 2014 года.
  34. ^ Асанович, К.; Бодик, Р.; Деммель, Дж. ; Кивени, Т.; Койцер, К.; Кубятович, Дж.; Морган, Н.; Паттерсон, Д.; Сен, К.; Вавжинек, Дж.; Вессель, Д.; Йелик, К. (2009). «Взгляд на ландшафт параллельных вычислений» . Коммун. АКМ . 52 (10): 56–67. дои : 10.1145/1562764.1562783 .
  35. ^ «GPU Gems – Глава 34, Идиомы управления потоком графического процессора» .
  36. ^ Чипы будущего . «Урок по удалению веток», 2011 г.
  37. Обзорный документ GPGPU. Архивировано 4 января 2007 года в Wayback Machine : Джон Д. Оуэнс, Дэвид Любке, Нага Говиндараджу, Марк Харрис, Йенс Крюгер, Аарон Э. Лефон и Тим Перселл. «Обзор универсальных вычислений на графическом оборудовании». Форум компьютерной графики, том 26, номер 1, 2007 г., стр. 80–113.
  38. ^ «С. Сенгупта, М. Харрис, Ю. Чжан, Дж. Д. Оуэнс, 2007. Примитивы сканирования для вычислений на графических процессорах. В Т. Айла и М. Сигал (ред.): Графическое оборудование (2007)» . Архивировано из оригинала 5 июня 2015 года . Проверено 16 декабря 2014 г.
  39. ^ Белллох, GE (1989). «Сканирование как примитивные параллельные операции» (PDF) . Транзакции IEEE на компьютерах . 38 (11): 1526–1538. дои : 10.1109/12.42122 . Архивировано из оригинала (PDF) 23 сентября 2015 года . Проверено 16 декабря 2014 г.
  40. ^ "M. Harris, S. Sengupta, J. D. Owens. Parallel Prefix Sum (Scan) with CUDA. In Nvidia: GPU Gems 3, Chapter 39".[permanent dead link]
  41. ^ Merrill, Duane. Allocation-oriented Algorithm Design with Application to GPU Computing. Ph.D. dissertation, Department of Computer Science, University of Virginia. Dec. 2011.
  42. ^ Sean Baxter. Modern gpu Archived 7 October 2016 at the Wayback Machine, 2013.
  43. ^ Leung, Alan, Ondřej Lhoták, and Ghulam Lashari. "Automatic parallelization for graphics processing units." Proceedings of the 7th International Conference on Principles and Practice of Programming in Java. ACM, 2009.
  44. ^ Henriksen, Troels, Martin Elsman, and Cosmin E. Oancea. "Size slicing: a hybrid approach to size inference in futhark." Proceedings of the 3rd ACM SIGPLAN workshop on Functional high-performance computing. ACM, 2014.
  45. ^ Baskaran, Muthu Manikandan; Bondhugula, Uday; Krishnamoorthy, Sriram; Ramanujam, J.; Rountev, Atanas; Sadayappan, P. (2008). "A compiler framework for optimization of affine loop nests for gpgpus". Proceedings of the 22nd annual international conference on Supercomputing - ICS '08. p. 225. doi:10.1145/1375527.1375562. ISBN 9781605581583. S2CID 6137960.
  46. ^ "K. Crane, I. Llamas, S. Tariq, 2008. Real-Time Simulation and Rendering of 3D Fluids. In Nvidia: GPU Gems 3, Chapter 30".[permanent dead link]
  47. ^ «М. Харрис, 2004. Моделирование быстрой гидродинамики на графическом процессоре. В Nvidia: Gems GPU, глава 38» . Архивировано из оригинала 7 октября 2017 года.
  48. ^ Блок, Бенджамин; Вирнау, Питер; Прейс, Тобиас (2010). «Мульти-GPU-ускоренное моделирование 2D-модели Изинга по методу Монте-Карло». Компьютерная физика. Коммуникации . 181 (9): 1549–1556. arXiv : 1007.3726 . Бибкод : 2010CoPhC.181.1549B . дои : 10.1016/j.cpc.2010.05.005 . S2CID   14828005 .
  49. ^ Солнце, С.; Бауэр, К.; Бейчел, Р. (2011). «Автоматическая трехмерная сегментация легких с раком легких по данным КТ с использованием нового подхода к надежной модели активной формы» . Транзакции IEEE по медицинской визуализации . 31 (2): 449–460. дои : 10.1109/TMI.2011.2171357 . ПМЦ   3657761 . ПМИД   21997248 .
  50. ^ Хименес, Эдвард С. и Лорел Дж. Орр. « Переосмысление объединения реконструкции компьютерной томографии и вычислений GPGPU ». Системы проникающего излучения и их применение XIV. Том. 8854. Международное общество оптики и фотоники, 2013.
  51. ^ Соренсен, Т.С.; Шеффтер, Т.; Ноэ, нокаут; Хансен, М.С. (2008). «Ускорение неравнопространственного быстрого преобразования Фурье на аппаратном обеспечении товарной графики» . Транзакции IEEE по медицинской визуализации . 27 (4): 538–547. дои : 10.1109/TMI.2007.909834 . ПМИД   18390350 . S2CID   206747049 .
  52. ^ Гарсия, Винсент; Дебрев, Эрик; Барло, Мишель (2008). «Быстрый поиск ближайших соседей с использованием графического процессора». arXiv : 0804.1448 [ cs.CV ].
  53. ^ Кокоччони, Марко; Грассо, Рафаэле; Риксен, Мишель (2011). «Быстрое создание прототипов высокопроизводительных приложений нечетких вычислений с использованием высокоуровневого программирования графических процессоров для поддержки морских операций» . Симпозиум IEEE 2011 по вычислительному интеллекту для приложений безопасности и обороны (CISDA) . стр. 17–23. дои : 10.1109/CISDA.2011.5945947 . ISBN  978-1-4244-9939-7 . S2CID   2089441 .
  54. ^ Уэлен, Шон (10 марта 2005 г.). Аудио и графический процессор . CiteSeerX   10.1.1.114.365 .
  55. ^ Уилсон, Рон (3 сентября 2009 г.). «DSP предлагает вам прогулку по Луне в высоком разрешении» . ЭДН . Архивировано из оригинала 22 января 2013 года . Проверено 3 сентября 2009 г. Сообщается, что Лоури использует графические процессоры Nvidia Tesla, запрограммированные в CUDA (Compute Unified Device Architecture) компании, для реализации алгоритмов. Nvidia утверждает, что графические процессоры примерно на два порядка быстрее вычислений ЦП, что сокращает время обработки до менее одной минуты на кадр.
  56. ^ Алерстам, Э.; Свенссон, Т.; Андерссон-Энгельс, С. (2008). «Параллельные вычисления с графическими процессорами для высокоскоростного моделирования миграции фотонов по методу Монте-Карло» (PDF) . Журнал биомедицинской оптики . 13 (6): 060504. Бибкод : 2008JBO....13f0504A . дои : 10.1117/1.3041496 . ПМИД   19123645 . Архивировано (PDF) из оригинала 9 августа 2011 года.
  57. ^ Перейти обратно: а б с Хасан, Хондкер С.; Чаттерджи, Амлан; Радхакришнан, Шридхар; Антонио, Джон К. (2014). «Модель прогнозирования производительности и анализ задач с интенсивными вычислениями на графических процессорах» (PDF) . Разработка передовых информационных систем (PDF) . Конспекты лекций по информатике. Том. 7908. стр. 612–617. дои : 10.1007/978-3-662-44917-2_65 . ISBN  978-3-642-38708-1 .
  58. ^ «Вычислительная физика с графическими процессорами: Лундская обсерватория» . www.astro.lu.se . Архивировано из оригинала 12 июля 2010 года.
  59. ^ Шац, Майкл С; Трапнелл, Коул; Делчер, Артур Л; Варшней, Амитабх (2007). «Высокопроизводительное выравнивание последовательностей с использованием графических процессоров» . БМК Биоинформатика . 8 : 474. дои : 10.1186/1471-2105-8-474 . ПМК   2222658 . ПМИД   18070356 .
  60. ^ Светлин А. Манавский; Джорджио Валле (2008). «CUDA-совместимые карты графического процессора как эффективные аппаратные ускорители для выравнивания последовательностей Смита-Уотермана» . БМК Биоинформатика . 9 (Дополнение 2): S10. дои : 10.1186/1471-2105-9-s2-s10 . ПМК   2323659 . ПМИД   18387198 .
  61. ^ Олейник, М; Стойвер, М; Горлач, С; Хайдер, Д. (15 ноября 2014 г.). «gCUP: быстрое прогнозирование использования корецепторов ВИЧ-1 на основе графического процессора для секвенирования следующего поколения» . Биоинформатика . 30 (22): 3272–3. doi : 10.1093/биоинформатика/btu535 . ПМИД   25123901 .
  62. ^ Ван, Гохуэй и др. « Ускорение алгоритмов компьютерного зрения с использованием инфраструктуры OpenCL на мобильном графическом процессоре — практический пример ». Международная конференция IEEE 2013 по акустике, речи и обработке сигналов. ИИЭР, 2013.
  63. ^ Бойер, Винсент; Эль Баз, Дидье (2013). «Последние достижения в области вычислений на графических процессорах в исследовании операций» . Международный симпозиум IEEE по параллельной и распределенной обработке, семинары и докторский форум 2013 г. (PDF) . стр. 1778–1787. дои : 10.1109/IPDPSW.2013.45 . ISBN  978-0-7695-4979-8 . S2CID   2774188 .
  64. ^ Буката, Либор; Суха, Пржемысл; Ханзалек, Зденек (2014). «Решение проблемы планирования проектов с ограниченными ресурсами с использованием параллельного поиска табу, разработанного для платформы CUDA». Журнал параллельных и распределенных вычислений . 77 : 58–68. arXiv : 1711.04556 . дои : 10.1016/j.jpdc.2014.11.005 . S2CID   206391585 .
  65. ^ Боймелт, Зденек; Дворжак, Ян; Щуха, Пржемысл; Ханзалек, Зденек (2016). «Новый подход к переназначению медсестер на основе параллельного алгоритма». Европейский журнал операционных исследований . 251 (2): 624–639. дои : 10.1016/j.ejor.2015.11.022 .
  66. ^ CTU-IIG. Архивировано 9 января 2016 г. в Чешском техническом университете Wayback Machine в Праге, Группа промышленной информатики (2015).
  67. ^ NRRPGpu. Архивировано 9 января 2016 г. в Чешском техническом университете Wayback Machine в Праге, Группа промышленной информатики (2015).
  68. ^ Наджу Манчерил. «Сортировка на основе графического процессора в PostgreSQL» (PDF) . Школа компьютерных наук – Университет Карнеги-Меллон . Архивировано (PDF) из оригинала 2 августа 2011 года.
  69. ^ Манавски, Светлин А. « CUDA-совместимый графический процессор как эффективный аппаратный ускоритель для шифрования AES. Архивировано 7 мая 2019 года на Wayback Machine ». Международная конференция IEEE 2007 г. по обработке сигналов и связи. ИИЭР, 2007.
  70. ^ Харрисон, Оуэн; Уолдрон, Джон (2007). «Внедрение и анализ шифрования AES на процессорах товарной графики». Криптографическое оборудование и встраиваемые системы — CHES 2007 . Конспекты лекций по информатике. Том. 4727. с. 209. CiteSeerX   10.1.1.149.7643 . дои : 10.1007/978-3-540-74735-2_15 . ISBN  978-3-540-74734-5 .
  71. ^ AES и режимы работы на графических процессорах, совместимых с SM4.0. Архивировано 21 августа 2010 года в Wayback Machine Оуэн Харрисон, Джон Уолдрон, Практическая криптография с симметричным ключом на современном графическом оборудовании. В материалах USENIX Security 2008.
  72. ^ Харрисон, Оуэн; Уолдрон, Джон (2009). «Эффективное ускорение асимметричной криптографии на графическом оборудовании». Прогресс в криптологии – AFRICACRYPT 2009 . Конспекты лекций по информатике. Том. 5580. с. 350. CiteSeerX   10.1.1.155.5448 . дои : 10.1007/978-3-642-02384-2_22 . ISBN  978-3-642-02383-5 .
  73. ^ «Проблемы с терафлопом: мощь графических процессоров может угрожать мировой системе защиты паролей» . Технологический научно-исследовательский институт Джорджии . Архивировано из оригинала 30 декабря 2010 года . Проверено 7 ноября 2010 г.
  74. ^ «Хотите сдержать хакеров? Сделайте свой пароль длиннее» . Новости Эн-Би-Си . 19 августа 2010 года . Проверено 7 ноября 2010 г.
  75. ^ Лернер, Ларри (9 апреля 2009 г.). «Точка зрения: массовые графические процессоры, а не процессоры для моделирования EDA» . ЭЭ Таймс . Проверено 14 сентября 2023 г.
  76. ^ «W2500 ADS Transient Convolution GT» . ускоряет моделирование целостности сигнала на рабочих станциях, оснащенных графическими процессорами (GPU) на базе унифицированной архитектуры устройств Nvidia (CUDA).
  77. ^ GrAVity: Массивно-параллельный антивирусный движок. Архивировано 27 июля 2010 г. в Wayback Machine . Гиоргос Василиадис и Сотирис Иоаннидис, GrAVity: массово-параллельный антивирусный движок. В материалах RAID 2010.
  78. ^ «Лаборатория Касперского» использует технологии Nvidia для усиления защиты» . Лаборатория Касперского . 14 декабря 2009 г. Архивировано из оригинала 19 июня 2010 г. В ходе внутреннего тестирования Tesla S1070 продемонстрировал 360-кратное увеличение скорости алгоритма определения сходства по сравнению с популярным центральным процессором Intel Core 2 Duo, работающим на тактовой частоте. скорость 2,6 ГГц.
  79. ^ Gnort: High Performance Network Intrusion Detection Using Graphics Processors Archived 9 April 2011 at the Wayback Machine. Giorgos Vasiliadis et al., Gnort: High Performance Network Intrusion Detection Using Graphics Processors. In proceedings of RAID 2008.
  80. ^ Regular Expression Matching on Graphics Hardware for Intrusion Detection Archived 27 July 2010 at the Wayback Machine. Giorgos Vasiliadis et al., Regular Expression Matching on Graphics Hardware for Intrusion Detection. In proceedings of RAID 2009.
  81. ^ "GPU-Accelerated Applications" (PDF). Archived (PDF) from the original on 25 March 2013. Retrieved 12 September 2013.
  82. ^ Langdon, William B; Lam, Brian Yee Hong; Petke, Justyna; Harman, Mark (2015). "Improving CUDA DNA Analysis Software with Genetic Programming". Proceedings of the 2015 on Genetic and Evolutionary Computation Conference - GECCO '15. pp. 1063–1070. doi:10.1145/2739480.2754652. ISBN 9781450334723. S2CID 8992769.

Further reading[edit]


Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 5E707A49F6D76520AF4EAA05EDA2486C__1718264640
URL1:https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units
Заголовок, (Title) документа по адресу, URL1:
General-purpose computing on graphics processing units - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)