Что такое GPU-ускорение

oclHashcat или брутфорс по-быстрому

Как я уже говорил, одними из первых поддержку GPGPU в свои продукты добавили разработчики различных крэкеров и систем брутфорса паролей. Для них новая технология стала настоящим святым граалем, который позволил с легкостью перенести от природы легко распараллеливаемый код на плечи быстрых GPU-процессоров. Поэтому неудивительно, что сейчас существуют десятки самых разных реализаций подобных программ. Но в этой статье я расскажу только об одной из них — oclHashcat.

oclHashcat — это ломалка, которая умеет подбирать пароли по их хэшу с экстремально высокой скоростью, задействуя при этом мощности GPU с помощью OpenCL. Если верить замерам, опубликованным на сайте проекта, скорость подбора MD5-паролей на nVidia GTX580 составляет до 15800 млн комбинаций в секунду, благодаря чему oclHashcat способен найти средний по сложности восьмисимвольный пароль за какие-то 9 минут.

Программа поддерживает OpenCL и CUDA, алгоритмы MD5, md5 ($pass.$salt), md5 (md5 ($pass)), vBulletin

Автор не раскрывает исходники (что, в общем-то, логично), но у программы есть нормально работающая Linux-версия, которую можно получить на официальной страничке.

Далее следует распаковать архив:

И запустить программу (воспользуемся пробным списком хэшей и пробным словарем):

oclHashcat откроет текст пользовательского соглашения, с которым следует согласиться, набрав «YES». После этого начнется процесс перебора, прогресс которого можно узнать по нажатию . Чтобы приостановить процесс, кнопаем

, для возобновления — . Также можно использовать прямой перебор (например, от aaaaaaaa до zzzzzzzz):

И различные модификации словаря и метода прямого перебора, а также их комбинации (об этом можно прочитать в файле docs/examples.txt). В моем случае скорость перебора всего словаря составила 11 минут, тогда как прямой перебор (от aaaaaaaa до zzzzzzzz) длился около 40 минут. В среднем скорость работы GPU (чип RV710) составила 88,3 млн/с.

Оптимизация и ускорение андроида с помощью кастомных оболочек лаунчеров.

Кастомные оболочки используются для изменения внешнего вида и настройки функционала смартфона или планшета без перепрошивки и установки Root-прав. Именно для оптимизации скорости работы устройства мы рекомендуем установить Nova Launcher.

Его основное преимущество в том, что он потребляет меньше ресурсов системы, довольно гибкий в настройке и максимально приближен к чистой ОС Android.

Особенно полезно устанавливать Nova Launcher для «слабых» устройств и устройств малоизвестных (китайских) брендов. Также кастомные оболочки используются для максимальной настройки смартфона под пользователя, и мы разберем основные в следующих статьях (следите за обновлениями).

В этой статье мы разобрали 3 основных способа как ускорить андроид: правильная настройка с помощью «Опций разработчика», использование специального ПО и регулярные действия для оптимизации андроид устройства, оптимизация и ускорение андроид с помощью кастомных оболочек (лаунчеров)

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

CUDA host API:

  • Device Management – включает функции для общего управления GPU (получение инфор-мации о возможностях GPU, переключение между GPU при работе SLI-режиме и т.д.).
  • Thread Management – управление нитями.
  • Stream Management – управление потоками.
  • Event Management – функция создания и управления event’ами.
  • Execution Control – функции запуска и исполнения ядра CUDA.
  • Memory Management – функции управлению памятью GPU.
  • Texture Reference Manager – работа с объектами текстур через CUDA.
  • OpenGL Interoperability – функции по взаимодействию с OpenGL API.
  • Direct3D 9 Interoperability – функции по взаимодействию с Direct3D 9 API.
  • Direct3D 10 Interoperability – функции по взаимодействию с Direct3D 10 API.
  • Error Handling – функции обработки ошибок.

Что есть сейчас

В силу своей молодости, а также благодаря описанным выше проблемам, GPGPU так и не стала по-настоящему распространенной технологией, однако полезный софт, использующий ее возможности, существует (хоть и в мизерном количестве). Одними из первых появились крэкеры различных хэшей, алгоритмы работы которых очень легко распараллелить. Также родились мультимедийные приложения, например, кодировщик FlacCL, позволяющий перекодировать звуковую дорожку в формат FLAC. Поддержкой GPGPU обзавелись и некоторые уже существовавшие ранее приложения, самым заметным из которых стал ImageMagick, который теперь умеет перекладывать часть своей работы на графический процессор с помощью OpenCL. Также есть проекты по переводу на CUDA/OpenCL (не любят юниксоиды ATi) архиваторов данных и других систем сжатия информации. Наиболее интересные из этих проектов мы рассмотрим в следующих разделах статьи, а пока попробуем разобраться с тем, что нам нужно для того, чтобы все это завелось и стабильно работало.

GPU уже давно обогнали x86-процессоры в производительности

Во-первых, понадобится видеокарта, поддерживающая технологию CUDA или Stream. Необязательно, чтобы она была топовая, достаточно только, чтобы год ее выпуска был не менее 2009. Полный список поддерживаемых видюшек можно посмотреть в Википедии: en.wikipedia.org/wiki/CUDA и en.wikipedia.org/wiki/AMD_Stream_Processor. Также о поддержке той или иной технологии можно узнать, прочитав документацию, хотя в большинстве случаев будет достаточным взглянуть на коробку из под видеокарты или ноутбука, обычно на нее наклеены различные рекламные стикеры.

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

И в-третьих, так как пока дистрибутивостроители еще не начали распространять пакеты приложений с поддержкой GPGPU, нам придется собирать приложения самостоятельно, а для этого нужны официальные SDK от производителей: CUDA Toolkit или ATI Stream SDK. Они содержат в себе необходимые для сборки приложений заголовочные файлы и библиотеки.

GPU наше все

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

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

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

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

Но и это еще не все. Несмотря на существование общепризнанного стандарта в лице OpenCL, многие программисты до сих пор предпочитают использовать привязанные к производителю реализации техники GPGPU. Особенно популярной оказалась CUDA, которая хоть и дает более гибкий интерфейс программирования (кстати, OpenCL в драйверах nVidia реализован поверх CUDA), но намертво привязывает приложение к видеокартам одного производителя.

Дополнительные ресурсы

  1. Установите и запустите Intel Media SDK в Windows
  2. FFMPEG.ORG
  3. Интеграция Intel Media SDK с FFMPEG для операций мультиплексирования, демультиплексирования, кодирования и декодирования звука
  4. Учебные руководства по Intel Media SDK для клиентов и серверов
  5. Intel Graphics Performance Analyzers
  6. Intel VTune Amplifier
  7. Intel Media Server Studio
  8. Ускорение приложений на основе FFmpeg с помощью Intel Quick Sync Video
  9. Intel QuickSync Video и FFmpeg*
  10. Intel QuickSync Video и FFmpeg: установка и проверка
  11. Доступ к Intel Media Server Studio для кодеков Linux с помощью FFmpeg
  12. Значение кодека HEVC (H.265)

Программы и ежедневные действия для ускорения андроида

Помимо одноразовых действий с Вашим смартфоном или планшетом, описанных выше, мы рекомендуем регулярно выполнять следующие действия:

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

Лучшие приложения для ускорения и оптимизации андроида

Clean Master

Разработчик:
Cheetah Mobile

4.66

Android Assistant

Разработчик:
AA Mobile

4.38

Battery Doctor

Разработчик:
Cheetah Mobile Inc. (NYSE: CMCM)

4.53

GLTools

Разработчик:
n0n3m4-experimental

4.16

Давайте разберем, как ускорить ваш андроид с помощью программы Clean Master:

  1. Установите бесплатное приложение Сlean Master (ссылка выше).
  2. В приложении мы рекомендуем чистить мусор не менее чем раз в неделю.
  3. Практически после каждой «тяжелой» задачи, которую исполнял Ваш смартфон необходимо нажимать «Ускорение». Чтобы не заходить в приложение постоянно нажмите на 3 точки в правом верхнем углу, перейдите в пункт «Настройки» — «Настройки виджета» и включите его. Теперь Вы постоянно будете видеть процент заполненной оперативной памяти и, потянув появившийся виджет (кружок) в низ, проводить быструю очистку оперативной памяти вашего android.

Технология в системах нового поколения

Уже давно прошли времена, когда аппаратное ускорение в системе было новой технологией, удивляющей повышением производительности графического интерфейса. Но разработчикам Microsoft на определенном этапе это снова удалось. Следующим шагом в работе с аппаратным ускорением стало создание плиточного интерфейса в Windows 8. Новый дизайн не стал лишь красивой оболочкой, а был создан для объединения программного обеспечения планшетных и классических компьютеров, что стало возможным в том числе и благодаря рассмотренной технологии.

Несмотря на то, что данное решение пользователи систем от Microsoft приняли не слишком тепло, в конечном итоге оно было переосмыслено и доработано в новой системе Windows 10, что позволило осуществлять более комфортный переход с 7 версии.

Журнал

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

Следующая команда будет непрерывно с интервалом в 5 секунд выводить на экран информация о потреблении видеопамяти и температуре GPU:

nvidia-smi --query-gpu=timestamp,name,temperature.gpu,memory.free,memory.used --format=csv -l 5
timestamp, name, temperature.gpu, memory.free , memory.used
2018/04/01 07:48:31.490, GeForce 840M, 46, 1778 MiB, 224 MiB
2018/04/01 07:48:36.491, GeForce 840M, 46, 1778 MiB, 224 MiB
2018/04/01 07:48:41.492, GeForce 840M, 46, 1778 MiB, 224 MiB

С помощью опции «-f» можно перенаправить вывод в файл:

nvidia-smi --query-gpu=timestamp,name,temperature.gpu,memory.free,memory.used --format=csv -l 5 -f video.log

Еще один способ смотреть за видеокартой — это запустить nvidia-smi с ключами dmon или pmon.

С помощью dmon можно следить за общими параметрами видеокарты. Я чаще всего использую dmon для контроля загруженности чипов NVDEC/NVENC расположенных в карте NVIDIA и которые отвечают за кодирование и раскодирование видео на аппаратном уровне.

nvidia-smi dmon
# gpu pwr temp sm mem enc dec mclk pclk
# Idx W C % % % % MHz MHz
0 - 46 0 0 - - 405 135
0 - 46 0 0 - - 405 135
0 - 46 6 2 - - 405 135

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

nvidia-smi pmon
# gpu pid type sm mem enc dec command
# Idx # C/G % % % % name
0 3473 G 0 0 0 0 Xorg
0 27856 C 2 3 60 45 ffmpeg
0 3473 G 0 0 0 0 Xorg
0 27856 C 2 3 71 53 ffmpeg
0 3473 G 0 0 0 0 Xorg
0 27856 C 4 6 79 58 ffmpeg

Настройка графики в AMD Catalyst Control центре для повышения производительности

Рис. 1. Два способа, как можно открыть настройки AMD Radeon видеокарты / кликабельно

Далее нужно открыть раздел «Игры», затем вкладку «Глобальные настройки» (в старых версиях драйверов раздел «Настройка 3-D приложений/Системные параметры»).

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

Рис. 2. Настройки Radeon — глобальные параметры / Кликабельно

Рис. 2.1. Настройки 3D приложений — AMD (старая версия драйвера)

После того, как настройки 3-D графики будут измены, откройте раздел «Питание», затем вкладку PowerPlay. Эта вкладка отвечает за управлением производительностью графического процессора при работе ноутбука от батареи или сети. В общем, нужно выставить на обоих вкладках параметр «Максимальная производительность» (как на рис. 3.).

Рис. 3. PowerPlay — настройки электропитания

Дополнение!

Кстати, обратите внимание, что в новых версиях AMD Radeon драйверов есть возможность буквально в 2 клика мышки оптимизировать работу адаптера на производительность (либо качество). Для этого достаточно кликнуть по значку AMD в системном трее рядом с часами (см

пример ниже на рис. 3.1).

Рис. 3.1. AMD Radeon — оптимизировать качество или производительность

Переключение графики, параметры //встроенная и дискретная видеокарты

У ноутбуков, у которых две видеокарты — при обычной работе в Windows (например, просмотр фильмов, веб-серфинг), задействована, обычно, встроенная (интегрированная) видеокарта, которая потребляет меньше ресурсов (что оправдано).

Когда вы запускаете какую-нибудь игру — должна начать свою работу дискретная, но иногда этого не происходит. В результате вы играете «на интегрированной видеокарте» — поэтому-то игра и тормозит. Чтобы ускорить работу видеокарты AMD, для начала, нужно чтобы она хотя бы была задействована и работала...

Так вот, в панели управления AMD Catalyst Control Center есть специальная вкладка, которая регулирует «взаимоотношение» между интегрированной и дискретной видеокартами — раздел этот «Глобальные параметры переключаемой графики».

В нем нужно задать следующие параметры:

  • поставить максимальную производительность для батареи и сети;
  • снять галочку напротив пункта «Разрешить дополнительные параметры энергосбережения» (если ее не убрать — ноутбук может начать экономить на производительности, стараясь сохранить на более длительное время заряд аккумуляторной батареи).

Рис. 4. Глобальные параметры переключаемой графики

Во вкладке «Параметры приложения переключаемой графики» я рекомендую сделать следующее: выбрать вашу игру (если ее нет — добавьте ее, см. рис. 5, стрелка-4), и переключить ее режим на «Высокая производительность» (стрелка-3 на рис. 5). Таким образом будет задействована в работе дискретная видеокарта (что и даст максимальную производительность).

Рис. 5. Параметры приложений переключаемой графики

Осталось только сохранить введенные настройки и попробовать снова запустить игру...

На этом настройка завершена, удачи!

Статья откорректирована: 1.03.2019

RSS
(как читать Rss)

Коммерция повсюду

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

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

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

Еще один немаловажный фактор: когда дорогие видеокарты не пользуются ожидаемым спросом, а на более дешевые модели, наоборот, появляется дефицит, зачастую GPU из «быстрой» партии устанавливают на «бюджетные» модели — это экономически оправданно. И на деле получается следующее: видеокарты за $500 и $250 могут обладать одинаково быстрыми графическими процессорами, но рабочие частоты у более дешевой карты будут занижены, а конвейеры заблокированы на уровне BIOS (стоит вспомнить Radeon X800 GTO и некоторые Radeon X1800 GTO). Эти все программные ограничения, так что обойти их можно. Но бывает и по-другому.

Не стоит забывать, что видеокарты изначально рассчитаны на жесткие условия работы, то есть высокую температуру внутри корпуса. Как следствие, чипу задают такую частоту, чтобы он не перегревался. Если обеспечить более комфортные условия, то результаты разгона могут быть очень существенными, например, удачно поддается разгону GeForce 7900 GS.

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

Если это не помогло

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

  • проверьте видеокарту на наличие физических повреждений. Если у вас нет опыта разборки компьютера и работы с его «внутренностями», то лучше всего обратиться к мастерам в сервисный центр (тем более, некоторые из них проводят диагностику бесплатно). Если она повреждена, то её нужно отремонтировать или заменить, ибо никакими драйверами тут ситуацию не спасёшь;

  • просканируйте файловую систему компьютера антивирусом. Некоторые вирусы могут препятствовать корректной работе драйверов и комплектующих;

  • обновите операционную систему. Довольно часто такая ошибка возникает после установки ОС – особенно её пиратской сборки. На ней могут отсутствовать необходимые компоненты для корректной работы видеокарты.

Данная ошибка не так страшна, ведь в 99% случаев она решается банальным обновлением драйверов для видеокарты или установкой новой версии DirectX. Куда хуже, если проблема заключается в физических повреждениях видеокарты – её ремонт обойдётся дорого, не говоря уже о замене.

Полезные команды

С моей точки зрения самой полезным способом запуска nvidia-smi, является запуск без параметров:

nvidia-smi

вы получите много полезной информации структурированной в виде простенькой таблички. Давайте запусти несколько приложений нагружающих видеокарты и посмотрим, что выдаст nvidia-smi. Для этого воспользуемся примерами, которые поставляются вместе с NVIDIA Cuda Toolkit (установка этого Toolkit описана ). Эти примеры точно нагрузят нашу видеокарту А так же запустим конвертирование видео из одного формата в другой с помощью утилиты FFmpeg, которая проводит кодирование/раскодирование видео на графическом ускорителе видеокарты.

Глядя на скриншот мы видим, что у нас запущены 4 приложения использующих ресурсы видеокарты:

  • Xorg — графическая подсистема Linux. Использует драйвер NVIDIA, поэтому она здесь в списке;
  • SimpleGL — пример из Cuda Toolkit;
  • marchinCubes — еще пример из Cuda Toolkit;
  • FFmpeg — в нашем тесте он занимается конвертированием видео с помощью NVIDIA GPU.

Шапка таблицы дает информацию о названии видеокарты, версии драйвера, текущем режиме работы и температуру. Все дается в понятном виде и дополнительных объяснений не требует. Рассмотрим подробнее раздел Processes, здесь каждый процесс имеет 5 параметров:

  • GPU — номер видеокарты на котором приложение запущено (если видеокарта одна, то там будет 0);
  • PID — ID процесса, по этому ID вы можете kill’ьнуть процесс обычной командой kill;
  • Type — тип приложения:
    • «G» — графическое (обычная графика, которая отрисовывается видеокартой);
    • «C» — вычислительное, например можно очень эффективно перемножать матрицы на видеокарте (CUDA ядра), но чаще всего подбирают пароли или майнят битки;
    • «G+C» — рисует и вычисляет и все это  делает с помощью видеокарты.
  • Process name — название приложения;
  • GPU Memory Usage — сколько видеопамяти занимает приложение.

Чтобы получить максимум информации о состоянии видеокарты наберите:

nvidia-smi -q

вывалится огромная «простыня», где вы найдете всю информацию про вашу карточку.

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

nvidia-smi -q -i 1

Для того, чтобы получить весь список видеокарт в системе воспользуйтесь командой:

nvidia-smi -L

Причины ускорения оборудования

Если вы получили эту ошибку на своем ПК, это означает, что произошла сбой в работе вашей системы. Общие причины включают неправильную или неудачную установку или удаление программного обеспечения, которое может привести к недействительным записям в вашем реестре Windows, последствиям атаки вирусов или вредоносных программ, неправильному отключению системы из-за сбоя питания или другого фактора, кто-то с небольшими техническими знаниями, случайно удалив необходимый системный файл или запись в реестре, а также ряд других причин. Непосредственной причиной ошибки «Аппаратное ускорение» является неправильное выполнение одной из обычных операций с помощью системного или прикладного компонента.

Видеокарта и типы памяти

  1. Регистровая память (register) является самой быстрой из всех видов. Определить количество регистров доступных GPU можно с помощью уже хорошо известной функции cudaGetDeviceProperties. Рассчитать количество регистров, доступных одной нити GPU, так же не составляет труда, для этого необходимо разделить общее число регистров на произведение количества нитей в блоке и количества блоков в гриде. Все регистры GPU 32 разрядные. В CUDA нет явных способов использования регистровой памяти, всю работу по размещению данных в регистрах берет на себя компилятор.
  2. Локальная память (local memory) может быть использована компилятором при большом количестве локальных переменных в какой-либо функции. По скоростным характеристикам локальная память значительно медленнее, чем регистровая. В документации от nVidia рекомендуется использовать локальную память только в самых необходимых случаях. Явных средств, позволяющих блокировать использование локальной памяти, не предусмотрено, поэтому при падении производительности стоит тщательно проанализировать код и исключить лишние локальные переменные.
  3. Глобальная память (global memory) – самый медленный тип памяти, из доступных GPU. Глобальные переменные можно выделить с помощью спецификатора __global__, а так же динамически, с помощью функций из семейства cudMallocXXX. Глобальная память в основном служит для хранения больших объемов данных, поступивших на device с host’а, данное перемещение осуществляется с использованием функций cudaMemcpyXXX. В алгоритмах, требующих высокой производительности, количество операций с глобальной памятью необходимо свести к минимуму.
  4. Разделяемая память (shared memory) относиться к быстрому типу памяти. Разделяемую память рекомендуется использовать для минимизации обращение к глобальной памяти, а так же для хранения локальных переменных функций. Адресация разделяемой памяти между нитями потока одинакова в пределах одного блока, что может быть использовано для обмена данными между потоками в пределах одного блока. Для размещения данных в разделяемой памяти используется спецификатор __shared__.
  5. Константная память (constant memory) является достаточно быстрой из доступных GPU. Отличительной особенностью константной памяти является возможность записи данных с хоста, но при этом в пределах GPU возможно лишь чтение из этой памяти, что и обуславливает её название. Для размещения данных в константной памяти предусмотрен спецификатор __constant__. Если необходимо использовать массив в константной памяти, то его размер необходимо указать заранее, так как динамическое выделение в отличие от глобальной памяти в константной не поддерживается. Для записи с хоста в константную память используется функция cudaMemcpyToSymbol, и для копирования с device’а на хост cudaMemcpyFromSymbol, как видно этот подход несколько отличается от подхода при работе с глобальной памятью.
  6. Текстурная память (texture memory), как и следует из названия, предназначена главным образом для работы с текстурами. Текстурная память имеет специфические особенности в адресации, чтении и записи данных. Более подробно о текстурной памяти я расскажу при рассмотрении вопросов обработки изображений на GPU.

Использование Intel Media SDK sample_multi_transcode

  • Если ваши приложения и решения мультимедиа предназначены для клиентских устройств, используйте пакет Intel Media SDK. Его можно загрузить бесплатно.
  • Если же ваши решения предназначены для встроенных систем, серверов или облачных платформ, доступ к Intel Media SDK можно получить с помощью Intel Media Server Studio. У этого решения есть бесплатный выпуск Community Edition и два платных выпуска: Essentials и Professional (их также можно использовать для ускорения перехода на HEVC и 4K/UHD).
  1. Загрузите Intel Media SDK для целевого устройства.
  2. Загрузите учебные руководства и прочтите их, чтобы понять, как настраивать программное обеспечение с помощью SDK.
  3. Установите Intel Media SDK. Если вы используете Linux, см. руководство по установке для Linux.
  4. Загрузите образец кода SDK, чтобы поэкспериментировать с уже скомпилированными образцами приложений.
  5. Соберите и запустите приложение Video Transcoding: sample_multi_transcode

-hw-u Рисунок 5. Примеры характеристик производительности H264 по отношению к целевому использованиюИспользуйте другие программные средства IntelIntel Graphics Performance AnalyzerIntel VTune AmplifierIntel Video Pro AnalyzerIntel Stress Bitstreams and Encoder

С чего начать С драйверов

Версия драйвера, иногда, имеет большое значение на производительность видеокарты. Если у вас не установлены «родные» драйвера от AMD (с «AMD Catalyst Control центром»), то вы не сможете их настроить под себя.

Такое может произойти, например, если после установки Windows вы не обновили драйвера. Проверить так ли это — очень легко, попробуйте нажать на рабочем столе, в любом месте, правую кнопку мышки — есть ли во всплывшем меню ссылка на настройку драйвера (обычно это: «AMD Catalyst Control Centr», либо «Свойства графики» — см. рис. 1 ниже).

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

CUDA и язык C:

  1. Спецификаторы функций, которые показывают, как и откуда буду выполняться функции.
  2. Спецификаторы переменных, которые служат для указания типа используемой памяти GPU.
  3. Спецификаторы запуска ядра GPU.
  4. Встроенные переменные для идентификации нитей, блоков и др. параметров при исполнении кода в ядре GPU .
  5. Дополнительные типы переменных.
  • __host__ — выполнятся на CPU, вызывается с CPU (в принципе его можно и не указывать).
  • __global__ — выполняется на GPU, вызывается с CPU.
  • __device__ — выполняется на GPU, вызывается с GPU.
  • gridSize – размерность сетки блоков (dim3), выделенную для расчетов,
  • blockSize – размер блока (dim3), выделенного для расчетов,
  • sharedMemSize – размер дополнительной памяти, выделяемой при запуске ядра,
  • cudaStream – переменная cudaStream_t, задающая поток, в котором будет произведен вызов.
  • gridDim – размерность грида, имеет тип dim3. Позволяет узнать размер гридa, выделенного при текущем вызове ядра.
  • blockDim – размерность блока, так же имеет тип dim3. Позволяет узнать размер блока, выделенного при текущем вызове ядра.
  • blockIdx – индекс текущего блока в вычислении на GPU, имеет тип uint3.
  • threadIdx – индекс текущей нити в вычислении на GPU, имеет тип uint3.
  • warpSize – размер warp’а, имеет тип int (сам еще не пробовал использовать).
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector