7994420702;horizontal

CUDA

Объем видеопамяти, определяемый Windows, программами или драйвером, отличается от указанного в спецификациях видеокарты и/или определяемого видеоBIOS #

  1. У многопроцессорных видеокарт, таких как GeForce 7950 GX2, 9800 GX2, GTX 295, каждый из графических процессоров имеет свой объем видеопамяти и он не объединяется с памятью другого процессора. Из заявленного для всей карты объема 3D приложениям доступна лишь половина — память второго GPU дублирует данные для многопроцессорного рендеринга SLI. Определённым исключением из правила являются некоторые приложения CUDA (OpenCL, DirectCompute), умеющие при отключенном в панели драйвера режиме MultiGPU использовать видеопамять каждого графического процессора независимо от памяти другого, таким образом загружая полный объем памяти на видеокарте.
  2. В операционных системах Windows Vista и более новых изменен механизм определения объема видеопамяти. Вместо отчета драйвера/BIOS видеокарты операционная система сама считает объем видеопамяти при использовании драйвера видеокарты, совместимого с архитектурой WDDM. Независимо от объема видеопамяти на видеокарте к ней прибавляется определенный объем оперативной памяти по формуле:

    (Оперативная память - 512) / 2 , Мб

    «Излишняя» видеопамять выделяется из оперативной памяти только на время непосредственной в ней необходимости. Всем приложениям, в том числе и многим системным, в качестве объема видеопамяти сообщается сумма памяти на видеокарте, зафиксированной для видеокарты оперативной памяти (для интегрированных/мобильных решений) и добавленной по формуле выше оперативной памяти. Для определения объема именно памяти на видеокарте приложение должно использовать новые вызовы DirectX 10 (апплет панели управления «Счетчики и средства производительности»(Performance Information and Tools)) или прямой доступ к оборудованию (RivaTuner). Для приложений, использующих старые версии DirectX, нет программных способов определить физический объем видеопамяти в данной операционной системе.
  3. В операционных системах Windows Vista и 7 драйвер NVIDIA ограничивает сообщаемый приложениям через устаревшие интерфейсы DirectX общий объем видеопамяти во избежание ошибок обработки больших значений. При использовании видеокарт с большим объемом буфера (таких как Quadro) такое поведение может ограничивать и доступный приложениям объем физической видеопамяти. Для отключения данного поведения драйвера в утилите TAG Memory Tool включите опцию «Maximum memory», однако, некоторые программы могут перестать работать.
  4. Для интегрированных графических процессоров и видеокарт с технологией Turbo Cache с объемом локальной видеопамяти 64 Мб и менее драйвер всегда сообщает максимально возможный объем памяти с учетом использования системной памяти. Определение фактически установленного объема видеопамяти на видеокарте с технологией Turbo Cache с объемом локальной видеопамяти 64 Мб и менее возможно лишь с помощью низкоуровневых утилит, таких как RivaTuner.
  5. При определении доступного объема видеопамяти через вызовы DirectX достаточно сложно выделить локальную память видеокарты из общего объема вместе с AGP апертурой или добавленной с помощью технологии Turbo Cache системной памяти. Подобные ошибки определения объема видеопамяти характерны для большинства игр.
  6. Алгоритм определения объема видеопамяти диалога отображения производительности компьютера в Windows Vista и 7 неправильно работает для видеокарт с нестандартным объемом видеопамяти. Так, GeForce 8800 GTS с 640 Мб видеопамяти будет определена как имеющая 512 Мб видеопамяти, а 8800 GTS с 320 Мб видеопамяти — как имеющая 256 или 384 Мб. Это официально признанная ошибка.
  7. Если вы покупали видеокарту с рук, то вы могли стать жертвой мошенников. Строка с объемом памяти, отображаемая видеоBIOS при включении компьютера, может быть легко подделана редактированием BIOS, тогда как драйвер определяет истинный объем.
  8. Были отмечены случаи, когда такое наблюдалось с видеокартами имевшими физически (чипами) заявленный объем. Помимо случаев брака в разводке платы ряд пострадавших отметил, что с другой версией драйвера распознавался полный объем. Предположительно, драйвер переинициализирует видеокарту при загрузке системы, проводя некий тест памяти. Попробуйте снизить рабочие частоты видеопамяти с помощью RivaTuner или установить дополнительное охлаждение на память видеокарты (радиаторы на чипы). Попробуйте другие версии драйвера. При наличии возможности обновите BIOS видеокарты.
  9. Недостаточный уровень электропитания карты также может приводить к такой проблеме. Особенно это актуально для карт на базе чипов GeForce 2, GeForce 2 MX и GeForce 4 MX, в которых применяется видеопамять с напряжением питания внутренних цепей +3.3V. Во многих таких картах память запитывается непосредственно от линий питания в AGP разъеме. Если блок питания или стабилизатор на материнской плате «проседают» по +3.3V, память может перестать определяться.

CUDA, DirectX, GeForce 2, GeForce 2 MX, GeForce 4 MX, GeForce 7950 GX2, GeForce 8800 GTS, GeForce 9800 GX2, GeForce GTX 295, RivaTuner, SLI, TAG Memory Tool, Turbo Cache, VRAM, Windows 7, Windows Vista, видеопамять, драйвер, электропитание

Чем можно протестировать видеопамять на карте? #

Существует ряд специальных программ:

  • VMT — любые видеокарты, можно тестировать из Windows или с LiveCD
  • TestVideoRAM — видеокарты GeForce 256 - GeForce 3, «чистая» загрузка DOS
  • OCCT PerestroÏka — тест «GPUMem» на базе CUDA, видеокарты GeForce 8X00 и более новые

CUDA, OCCT Perestroïka, TestVideoRAM, VMT, VRAM, видеопамять

Включение ускорения CUDA в Premiere CS5 #

Движок Adobe Mercury Playback, лежащий в основе Premiere CS5, поддерживает ускорение CUDA лишь для нескольких видеокарт Quadro и GeForce GTX 285. Однако, определение поддержки видеокарты осуществляется простым сравнением названия со списком, и список может быть изменён для добавления поддержки других видеокарт на базе NVIDIA.

Для добавления поддержки ускорения CUDA для видеокарты убедитесь, что выполнены следующие условия:

  • Используется полная версия Adobe Premiere CS5. Пробная (trial) версия не поддерживается.
  • Графический процессор видеокарты имеет уровень CUDA compatibility 1.1 и выше. Видеокарты на базе G80 имеют уровень лишь 1.0 и не подходят для Mercury Engine.
  • Видеокарта имеет не менее 896 Мб видеопамяти. Хотя для включения ускорения требуется лишь 765 Мб, эта память должна быть полностью доступна приложению, а часть видеопамяти всегда занята под обслуживание графического интерфейса Windows и обмен с драйвером, так что с картой с 768 Мб видеопамяти приложению будет доступно меньше 765 Мб и ускорение работать не будет.
  • Установлен драйвер NVIDIA версии не ниже 197.45.

Выполните следующую последовательность действий:

  1. Запустите командную строку Windows (cmd.exe) от имени администратора. Командой cd перейдите в папку, куда установлен Premiere (обычно C:\Program Files\Adobe\Adobe Premiere Pro CS5).
  2. Выполните команду GPUSniffer.exe
  3. Внимательно изучите вывод программы. В конце его должна быть строка «CUDA Device # 0 not chosen because it did not match the named list of cards». Если указана другая причина («because 765MB are required, and XXXMB are present», «because CUDA version 1.0 is not supported»), значит видеокарта не поддерживается, или драйвер NVIDIA установлен некорректно, удалите и установите новую версию драйвера. Запомните также строчку вида «Name: GeForce ХХХХХХ Compute capability: 1.3», GeForce ХХХХХХ и есть имя карты, под которым её надо будет добавить в список.
  4. Выполните команду notepad.exe cuda_supported_cards.txt
  5. В Блокноте допишите последней строкой имя карты, которое узнали в пункте 3 и сохраните файл.
  6. Снова выполните команду GPUSniffer.exe. Просмотрите вывод и убедитесь, что в конце присутствует строка «CUDA Device # 0 supported».
  7. Запустите Adobe Premiere. Создайте новый проект и зайдите в его свойства. На закладке «Video Rendering and Playback» смените «Mercury Playback Engine Software Only» на «Mercury Playback Engine GPU Acceleration».

Следует учитывать следующие ограничения аппаратного ускорения CUDA в Premiere:

  • Mercury Playback не ускоряет кодирование/декодирование видео — это работа кодека. Одновременная работа с проектом и экспорт проекта с кодеком, также использующим ускорение CUDA, может привести к непредсказуемым результатам.
  • Не все эффекты ускоряются.
  • Ускорение корректно работает лишь для первых трех слоев, последующие слои могут обрабатываться аппаратно лишь частично и возможны артефакты изображения.
  • Предельные разрешение обрабатываемого видео и число слоев зависят от объема видеопамяти. Рекомендуется включать функцию ускорения CUDA лишь для видеокарт с большим, чем 1 Гб, объемом памяти. 

Adobe, CUDA, GeForce GTX 285, Premiere, VRAM, видео, видеопамять

Почему видеокарта переходит в 3D режим, если не запущено ни одного 3D приложения? #

Видеокарты, у которых отсутствует разделение на режимы производительности, всегда работают с максимальными частотами. Это, например, видеокарты на базе GeForce FX фирмы ASUS и большинство видеокарт на базе графического процессора G92 (GeForce 8800, 9800, GeForce GTS). Проверить наличие/отсутствия разделения на режимы можно, открыв BIOS видеокарты в редакторе NiBiTor. Если на закладке «Clockrates» в таблице частот заполнена значениями лишь одна строка или все строки заполнены одинаковыми значениями — у карты нет разделения режимов.

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

Если у видеокарты разделение режимов присутствует, переход в режим 3D может быть вызван использованием различных функций видеокарты:

  • Прежде всего следует обратить внимание на заставку — хранитель экрана (screensaver). Некоторые заставки, использующие 3D графику, после нажатия клавиш неправильно завершают работу и остаются «висеть» в оперативной памяти, не проявляясь внешне.
  • Воспроизведение видео. Многие современные проигрыватели и декодеры умеют использовать функции графического процессора по ускорению декодирования видео. В этих функциях могут использоваться 3D блоки карты для аппаратного выполнения сложных операций с видеопотоком, что распознается драйвером как запуск приложения с 3D ускорением. Аппаратное ускорение использует и Adobe Flash Player, начиная с версии 9.0.115.
  • Использование приложений и Web-страниц, основанных на Java. Виртуальная машина Java от Sun может использовать функции Direct3D или OpenGL для отображения некоторых эффектов.
  • Некоторые приложения умеют использовать мощности видеокарты для вычислений с помощью API NVIDIA CUDA, например клиент распределенных вычислений Folding@Home и программы линейки Password Recovery фирмы Elcomsoft.
  • Видеокарты на базе графических процессоров G92 и более новых работают на частотах режима 3D при использовании многомониторности (DualView).
  • Использование режима 120 Гц 3D Vision-совместимых мониторов на рабочем столе также может приводить к работе GPU на повышенной частоте.

3D Vision, Adobe, Asus, CUDA, DirectX, DualView, Flash, GeForce 8800, GeForce 9800, GeForce FX, Java, NiBiTor, OpenGL, видео, монитор

Стоят ли видеокарты с увеличенным относительно стандартного объемом видеопамяти своей цены? #

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

Вместе с тем, если видеокарта приобретается для профессиональных применений (программы 3D моделирования, CAD) или планируется ее использование для неграфических вычислений (с помощью API CUDA от NVIDIA, например), повышенный объем видеопамяти вполне может найти применение изначально или в ближайшем будущем.

CUDA, FSAA, VRAM, видеопамять, выбор, сглаживание

7994420702;horizontal

Объединяется ли объем видеопамяти у видеокарт в составе SLI? #

Нет, в режиме SLI каждая видеокарта использует только свою видеопамять. Каждая видеокарта загружает в память всю исходную информацию для построения сцены (геометрию, текстуры, карты нормалей). Исключение составляет использование API универсальных вычислений NVIDIA CUDA, приложения CUDA могут использовать видеопамять каждой карты отдельно, хотя и с рядом ограничений.

CUDA, SLI, VRAM, видеопамять

Как реализовано ускорение PhysX на видеокартах на базе NVIDIA? На видеокарте просто размещен отдельный процессор от AGEIA? Выделенными блоками графического процессора? #

Расчеты для ускорения физики осуществляются обычными универсальными шейдерными процессорами графических процессов NVIDIA. Шейдерные процессоры NVIDIA соответствуют стандарту вычислений IEEE 754. Расчетные задачи PhysX превращаются клиентским программным обеспечением PhysX System Software в вычисления через API универсальных вычислений NVIDIA CUDA, поддерживаемый всеми графическими процессорами NVIDIA, начиная с семейства GeForce 8X00.

AGEIA, CUDA, PhysX

Какие оборудование и программное обеспечение требуются для PhysX? #

В текущей реализации для аппаратной обработки PhysX требуется наличие в системе графического процессора NVIDIA GeForce поколения 8Х00 или более нового, имеющего минимум 32 вычислительных шейдерных ядра (SPU), либо соответствующей видеокарты Quadro. Требуется наличие 256 Мб видеопамяти у видеокарты или соответствующего зарезервированного объема системной памяти, выделенного интегрированному процессору. Вместе с тем имеется ряд дополнительных соображений:

  • Вычислительные ресурсы для расчетов CUDA/PhysX выделяются блоками шейдерных процессоров (мультипроцессорами). Минимальный размер блока — 8 шейдерных процессоров, которые уже не смогут участвовать в расчете графики.
  • Оригинальный PPU, применявшийся на картах AGEIA до ее приобретения NVIDIA, согласно открытой патентной документации имел 16 вычислительных ядер, каждое из которых состояло из двух VPU и двух ALU блоков. Универсальный шейдерный процессор графических процессоров NVIDIA содержит всего один ALU. Хотя шейдерные процессоры в графических процессорах NVIDIA работают на много больших тактовых частотах, чем AGEIA PPU, для соответствия производительности выпущенных до 2008 года приложений производительности при использовании оригинального AGEIA PPU может потребоваться выделение для расчета физики двух-трех мультипроцессоров (16-24 шейдерных процессоров). Современные игры для более насыщенных физических эффектов могут потребовать и больших вычислительных мощностей.
  • Разные графические процессоры NVIDIA имеют разную степень реализации универсальных вычислений CUDA. Эта степень обозначается Compute capability, с ее значениями для разных графических процессоров NVIDIA можно ознакомиться в сравнительных таблицах. Детальное описание каждой степени содержится в документации CUDA, чем выше степень, тем выше производительность универсальных вычислений при том же количестве шейдерных процессоров. На более ранних графических процессорах (с меньшей степенью сompute capability) может потребоваться выделение большего числа процессоров для расчета физики.
  • Физические вычисления требуют значительного обмена данными между оперативной памятью и видеопамятью. На оригинальных картах ускорения физики от AGEIA применялась память GDDR3 с полосой пропускания 23 Гб/с, что превосходит полосу пропускания видеопамяти видеокарт начального уровня и интегрированных графических процессоров. При использовании одной и той же видеокарты начального или среднего уровня и для графики, и для расчётов физики, полосы пропускания видеопамяти может не хватить и производительность будет неудовлетворительной.

Поскольку вычисления PhysX на графических процессорах NVIDIA реализованы через API универсальных вычислений CUDA, требуется использование драйвера видеокарты, поддерживающего интерфейс CUDA версии 2.0 или выше. Такой поддержкой обладают драйверы NVIDIA версии 178.ХХ или более новой. Также требуется установка клиентского программного обеспечения PhysX System Software. Установка CUDA SDK для работы PhysX-совместимых приложений не требуется. Клиентское программное обеспечение PhysX доступно лишь для операционных систем Windows (XP, Vista и 7).

AGEIA, CUDA, PhysX, VRAM, видеопамять, выбор, драйвер, шейдеры

Будут ли использовать аппаратное ускорение PhysX видеокарт NVIDIA приложения, разработанные для оригинальных карт ускорения физики от AGEIA? #

Работа программ с оборудованием в API PhysX идет через один из модулей. Есть программный модуль (оптимизированная библиотека для расчетов на центральном процессоре с использованием многопоточности и инструкций SSE) и модуль для аппаратных ускорителей. В модуле для аппаратных ускорителей сделано два пути: низкоуровневый для оригинальных процессоров ускорения физики от AGEIA (PPU) и преобразователь в вызовы API универсальных вычислений CUDA для видеокарт NVIDIA. Приложения просто используют модуль для аппаратных ускорителей, выбор пути осуществляется клиентским программным обеспечением PhysX System Software в зависимости от имеющегося в конкретной системе оборудования (отдельная карта или графический процессор). Если доступного оборудования нет, в зависимости от приложения PhysX отключается, или происходит переключение на программный модуль.

Следует отметить, что некоторые ранние демонстрации PhysX, использовавшие SDK версий ниже  2.7.3, такие как AGEIA Reality Mark или PhysX Rocket, не будут использовать аппаратное ускорение со стороны видеокарты.

AGEIA, CPU, CUDA, PhysX, RealityMark