Графические и не очень API, возможности драйверов (21.2.2 - GCN 4 / 461.40 - Pascal)
- Навигация:
- Предисловие и условия
- Результаты
- Выводы
Предисловие и условия
Данная статья отпочковалась от другой статьи, ссылка на статью:
реклама
-= Установка и сравнение драйверов на видеокарту (21.2.2 - GCN 4 / 461.40 - Pascal) =-
Я сомневаюсь что данный материал будет интересен большинству обычных пользователей, здесь не будет фотографий видеокарт, как логотипы подсвечиваются, графики с FPS в играх и т.п., здесь будет очень много текста, но очень мало слов.
Если вам интересно посмотреть "изнутри" как обстоят дела с графическими (и не очень) API, то добро пожаловать.
реклама
Я не стану в пределах данной статьи разбирать каждое расширение до последнего бита, но поверхностно я постараюсь наглядно выделить разницу.
Условия:
|
AMD 21.2.2 | nVidia 461.40 |
Операционная система | Windows 7 SP1 (VC Redist 2005-2019, .NET 4.8 & 5.0.2) |
|
Версия драйвера | 21.2.2 (Optional, Non-WHQL) (02.02.2021) |
461.40 (GRD, WHQL) (26.01.2021) |
CPU-RAM | Ryzen 5 1600 AF (3.7 GHz), 2x8 GB 3400 MHz. | |
Файл подкачки | Отключен | |
Видеокарта | Sapphire Radeon RX 560 Pulse | MSI GeForce GTX 1070 AERO OC |
Результаты
Результаты были собраны утилитой GPU Caps Viewer версии 1.50.0.0, сбор информации был проведен в текстовый файл, именно из этого файла я и буду брать данные, по сути там повторяется всё, что отображается в окне самой программы.
OpenGL
Общая информация:
реклама
Расширенная информация:
SPIR-V расширения:
реклама
OpenGL расширения:
Расширения присутствующие в обоих драйверах (272 расширения):
Расширения присутствующие только в драйвере AMD (55 расширений):
Расширения присутствующие только в драйвере nVidia (149 расширений):
OpenGL core capabilities:
OpenGL extension capabilities:
OpenCL
Vulkan
Я не придумал ничего умнее чем некоторую информацию представить скриншотом:
Vulkan Instance extensions:
Vulkan extensions:
Vulkan device features:
Vulkan device limits:
CUDA
Выводы
Кто-то скажет — безумие, и возможно будет прав, но как иначе сравнивать если даже не видел то, что собираешься сравнить?
Я старался в минимальный объем всё поместить, но даже так, количество текста оказалось на десятки тысяч символов, разбивать на несколько частей не вижу целесообразным, статья имеет конкретную тематику.
Мне пришлось перенести основную массу информации в изображения, просто чтобы хоть как-то сделать размер статьи адекватнее.
Возможности:
Можно заметить, что в разных API некоторые возможности совпадают, например "CL_DEVICE_MAX_WORK_ITEM_SIZES" из OpenCL и "Threads Per Block" из CUDA имеют одинаковые ограничения.
Еще можно заметить "maxImageDimensionXX" из Vulkan и "GL_MAX_TEXTURE_SIZE " из OpenGL, а так же ряд других аналогичных параметров имеют одинаковые ограничения, и они судя по всему обусловлены архитектурой видеокарт.
Я думаю многие люди как минимум слышали про такую игру как Minecraft, а некоторые еще и с одной интересной проблемой вероятно сталкивались, когда применяешь текстурпак (ресурспак) и он крашит игру с видеокартой от AMD, но в паре с видеокартой от nVidia все работает, как так?
Возможно некоторые уже заметили такие ограничения как "GL_MAX_TEXTURE_SIZE", просто создатели ресурспака порой не учитывают (а может специально...) разные ограничения у nVidia и AMD, и в итоге рождаются листы текстур размером 1024х20480 (и другие вариации), для анимации лавы или воды в игре, естественно такие текстуры не входят в лимит 16384 и Minecraft благополучно падает с видеокартой от AMD, когда с видеокартой от nVidia все нормально т.к. лимит 32768.
Надеюсь достаточно понятно объяснил как могут влиять ограничения, это был конечно лишь один пример, но в целом сложно сказать у кого лучше обстоят дела с ограничениями.
Очень многое зависит от конкретных случаев и разработчиков, одной лишь манипуляцией с размером текстур можно заставить работать игру только на видеокартах от nVidia, даже если эту текстуру никогда никто не увидит, и она будет размером всего 2х20480.
Расширения:
Очевидно количество расширений на стороне nVidia, хотя у AMD я заметил несколько расширений "GOOGLE_", что показалось мне довольно забавным.
Единственное, где большинство расширений оказалось на стороне AMD это OpenCL, причем у nVidia выделяются расширения "NV_", некоторые имеют одинаковые имена с расширениями "KHR_".
Хотя ради справедливости nVidia наштамповала 89 "GL_NV_" расширений, когда за AMD числится лишь 29 "GL_AMD_" расширений и 5 "GL_ATI_", естественно без учета расширений которые поддерживаются как AMD, так и nVidia.
А еще отмечу что в OpenCL у AMD есть "cl_khr_fp16" расширение (вычисления с половинной точностью), но отсутствует у nVidia, хотя в Vulkan расширение "VK_KHR_shader_float16_int8" есть у AMD и nVidia.
Версии API:
Несмотря на меньшее количество расширений у AMD, версии таких API как Vulkan, OpenCL и OpenGL выше чем у nVidia, и больше добавить нечего.
Заключение:
Я не знаю что еще добавить интересного для людей которые видят во всей массе статьи лишь набор символов и цифр.
Люди которым нужна будет данная информация вполне вероятно обойдутся и без выводов, что я написал.
На этом всё, благодарю за внимание.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила