LINUX.ORG.RU

Патчем к LLVM реализовано ускорение свободного драйвера RadeonSI в 1,5-2 раза

 , ,


7

10

Для LLVM представлен коммит объёмом примерно в 2 тысячи строк, после применения которого производительность графической подсистемы, известной под обобщённым названием RadeonSI, увеличивается на десятки процентов. На самом деле после применения этого патча во всех тестах производительность открытого графического стека обходит проприетарный драйвер Catalyst.

Так же стоит отметить что в Mesa 11 (релиз которой ожидается в течении недели-двух) для RaseonSI обеспечена полная поддержка OpenGL 4.0 и 4.1 (ранее поддержка ограничивалась версией 3.3).

Измерение производительности

>>> Подробности

★★★★★

Проверено: splinter ()

Ответ на: комментарий от a1batross

Ну не, в каком-то плане как раз ВМ.

Тогда и gcc тоже VM.

anonymous ()
Ответ на: комментарий от fmdw

LLVM IR - язык очень высокого уровня. Намного более высокого уровня, чем любой существующий ассемблер, включая MACRO32 (который, кстати, после перехода на Alpha, тоже стал языком высокого уровня).

anonymous ()
Ответ на: комментарий от anonymous

Там полностью переписан machine scheduler. Удивительно, как оно всего в 2000 строк уместились.

anonymous ()
Ответ на: комментарий от anonymous

Ну ладно, уговорил. Просто на голом IR вряд ли кто пишет.

fmdw ()
Ответ на: комментарий от devl547

Интересно, кто-нибудь изучал эти самые узкие места, из-за которых минимальный фпс такой... минимальный? Кто-нибудь специально занимается увеличением производительности свободных драйверов, или сейчас в приоритете добавление новых фич?

Khnazile ★★★★★ ()

Теперь артефакты отрисовываются в 1.5-2 раза быстрее? Какая прелесть!

Если серьезно, есть ли на текущий момент проблемы с новым X-COM и Bioshock Infinite на радеонах? Думаю, что брать на роль видеокарты через год-другой.

kawaii_neko ★★★★ ()
Ответ на: комментарий от MyFreedom

Что за жёлтый заголовок, ускорение в 1.5 раза только в Xonotic, в проприетарных играх всё так же открытый драйвер сливает каталисту

Сто раз объясняли: сливает, сливал и будет сливать. Это не проблемы открытого драйвера, это проблемы подхода к разработке AAA-игр.

Может быть, с приходом нового графического АПИ ситуация изменится, но я не верю.

Macil ★★★★★ ()
Ответ на: комментарий от kawaii_neko

Если серьезно, есть ли на текущий момент проблемы с новым X-COM и Bioshock Infinite на радеонах?

поставь, проверь, делов-то

Думаю, что брать на роль видеокарты через год-другой.

пару книжек можешь взять по разработке, и через год-другой на роль видеокарты возьмешь то, в чем будет интересно ковыряться ;)

anTaRes ★★★★ ()
Ответ на: комментарий от Vudod

А зачем вам OpenCL, ведь для научных расчётов тип с одинарной точностью float непригоден, а все имеющиеся на рынке видеокарты для десктопов дают приличную производительность только для типа float, для типа double даже у дорогих карт производительность сравнима или даже хуже чем например у core-i7. Так что для численных расчётов с типом double надо покупать специальные дорогие карты которые ещё до обвала рубля стоили порядка 200000 рублей, насколько я помню.

anonymous ()
Ответ на: комментарий от anTaRes

поставь, проверь, делов-то

На Nvidia работает. А покупать не самый дешевый Radeon только чтоб проверить как-то неохота.

пару книжек можешь взять по разработке, и через год-другой на роль видеокарты возьмешь то, в чем будет интересно ковыряться ;)

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

kawaii_neko ★★★★ ()
Ответ на: комментарий от Deleted
$ grep -R -i fuck /usr/src/linux/drivers/gpu/*
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c:	 * avoid fucking up the memory controller (somehow) by reading it
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c:	/* XXX: where the fuck does 750MHz come from? */
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/fuc/macros.fuc:#define NV_PPWR_INTR_EN_CLR_MASK                    /* fuck i hate envyas */ -1

$ grep -R -i wtf /usr/src/linux/drivers/gpu/*
/usr/src/linux/drivers/gpu/drm/i915/i915_reg.h:#define DSPFW7_CHV		(VLV_DISPLAY_BASE + 0x700b4) /* wtf #1? */
/usr/src/linux/drivers/gpu/drm/i915/i915_reg.h:#define DSPFW9_CHV		(VLV_DISPLAY_BASE + 0x7007c) /* wtf #2? */
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpc.fuc:	nv_iowr(NV_PGRAPH_GPCX_GPCCS_MMCTX_LOAD_COUNT, 0, $r3) // wtf for?!
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/hub.fuc:	nv_iowr(NV_PGRAPH_FECS_MMCTX_LOAD_COUNT, 0, $r15) // wtf??
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:		/* wtf, appears to only disable post-divider on gt200 */
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:				if (nv_device(priv)->chipset == 0xa0) /* wtf?? */
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c:	/* ummm.. yes.. should really figure out wtf this is and why it's
/usr/src/linux/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c:	case 0x07: /* DP internal, wtf is this?? HP8670w */
anTaRes ★★★★ ()
Ответ на: комментарий от anonymous

ведь для научных расчётов тип с одинарной точностью float непригоден,

На AMD очень неплохая целочисленная производительность. Что все так на этой плавучке зациклились?

anonymous ()
Ответ на: комментарий от true_admin

Ну на самом деле это ПОКА компилятор, но никто не мешает промежуточный код исполнять интерпретатором или JIT-компилировать. В общем Java/.Net только с другого боку.

navrocky ()
Ответ на: комментарий от navrocky

Ну тогда и gcc это тоже только «ПОКА компилятор». Ведь ничто не мешает GIMPLE интерпретировать или JIT-компилировать (уже умеют, кстати).

anonymous ()
Ответ на: комментарий от navrocky

Ну на самом деле это ПОКА компилятор

А lli тогда что?

Вообще, я не понимаю всей этой мании порассуждать на тему «что есть llvm». Очевидно что это целый набор инструментов, а не что-то одно.

true_admin ★★★★★ ()
Ответ на: комментарий от fornlr

А в свободных АМД драйверах нету таких слов?

$ ls --hide="*\.*" /usr/src/linux/drivers/gpu/drm 
amd  armada  ast  atmel-hlcdc  bochs  bridge  cirrus  exynos  gma500  i2c  i810  i915  imx  Kconfig  Makefile  mga  mgag200  msm  nouveau  omapdrm  panel  qxl  r128  radeon  rcar-du  rockchip  savage  shmobile  sis  sti  tdfx  tegra  tilcdc  ttm  udl  vgem  via  vmwgfx

это означает (в том числе) то, что дровописатели имеют дело с аццким черным ящиком, который ведет себя хз как в разных ситуациях

зная привычки разных креативов, нвидий и пр. у них свои заморочки: «Каждый год, перед выпуском новой линейки карт, мы с друзьями ... добавляем туда одну старую trollface.jpg!»

Ну и, на ряду с затычками для этого, не исключены и затычки-тормоза. И даже если все кричат «откройте нам код дров!!11», наличие в нем быдлокода и каких-то мутных хаков может оказсться не самым страшным. Вдруг какой-то древний пылесос можно заставить работать на открытых дровах быстрее чем новый «супер-пупер ЖТ» под о[ф/н]топом с блобом.
Но то так, мысли в слух.

anTaRes ★★★★ ()
Ответ на: комментарий от anonymous

float непригоден

Воу, полегче.

производительность только для типа float

Как там криокамера? Не знаю, может что изменилось, но пару лет назад (как раз я этим занимался) производительность у CUDA на double была вполне сравнима c float.

P.S. А вообще, твои слова в принципе не имеют смысла. Сравниваешь синее и горячее. Все ж зависит от задачи. Если задача достаточно хорошо параллелится — никакой CPU даже рядом с современными видяхами не стоял.

P.P.S. Знаю, что в 1,5 раза — это очень хреново, но я же не GPU vs. GPU сравнивал, а (GPU vs. GPU) vs. CPU.

Quickern ★★ ()
Последнее исправление: Quickern (всего исправлений: 2)
Ответ на: комментарий от haku

да они и так шли норм, а вот валлей с патчам на пресете эстримхд уже почти долгнал винду с опенгл, 36 и 38 фпс, не дурно, хотя хевен конечно с тесселяцией отстает сильно, 23 и 42 фпс

Novell-ch ★★★★★ ()
Ответ на: комментарий от Khnazile
$ cd /tmp
$ git clone /home/install/distfiles/git3-src/mesa_mesa.git
$ grep -R -i fuck mesa_mesa/
mesa_mesa/src/gallium/drivers/llvmpipe/lp_state_fs.c:         /* This is fucked up need to reorganize things */
$ grep -R -i wtf mesa_mesa/*
mesa_mesa/src/gallium/drivers/nouveau/nouveau_fence.c:   /* wtf, someone is waiting on a fence in flush_notify handler? */
mesa_mesa/src/gallium/drivers/nouveau/nv30/nv30_clear.c:   /*XXX: wtf? fixes clears sometimes not clearing on nv3x... */
mesa_mesa/src/gallium/drivers/nouveau/nvc0/nvc0_video_ppp.c:   // 728 = wtf?
mesa_mesa/src/gallium/drivers/nouveau/nv50/nv98_video_ppp.c:   // 728 = wtf?
mesa_mesa/src/gallium/auxiliary/postprocess/pp_mlaa.c:   /* Sampler order: colormap, blendmap (wtf compiler) */
mesa_mesa/src/mapi/glapi/gen/glX_proto_size.py:                    raise RuntimeError(«i is None.  WTF?»)

anTaRes ★★★★ ()
Ответ на: комментарий от Deleted

Не фанатам китайского дерьма судить о хламе в моей голове.

Ха-ха, хлам в вашей голове совсем выдавил из нее мозг.

andreyu ★★★★★ ()
Ответ на: комментарий от lv77

ну, это не мне было интересно
но ок, у меня тоже есть нативный X-COM:E(U|W), который я прошел под блобом
шшас проверю до пары

anTaRes ★★★★ ()

Простите за глупый вопрос, а с этим драйвером OpenCL программы не смогут работать?

vasin ()
Ответ на: комментарий от Quickern

производительность у CUDA на double была вполне сравнима c float.

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

А вообще, твои слова в принципе не имеют смысла. Сравниваешь синее и горячее.

Тип с одинарной точностью float приводит к быстрому накоплению ошибки, так что на выходе получается некорректный результат либо вообще мусор. float хватает с запасом для нужд игр, но для численных расчётов нет.

anonymous ()
Ответ на: комментарий от true_admin

Просто у него название которое вводит людей в заблуждение

Причём он уже хз сколько лет называется LLVM без расшифровки, но народ по памяти расшифровывает...

Stil ★★★★★ ()
Ответ на: комментарий от Behem0th

Марек написал патчи, которые помогают находить локапы в mesa. Скоро будет в мастере, глядишь, поможет твой косяк побороть.

anonymous ()

Собирался недавно переключиться на fglrx поиграться, но теперь все меньше смысла :)

BlackRaven86 ()
Ответ на: комментарий от anonymous

Такое было только на специализированных решениях для численных вычислений

Ясен пень я про теслы. Ну да, они ~100т.р. стоили. Да, это дороже обычных видях. Но даже не на порядок.

float хватает с запасом для нужд игр, но для численных расчётов нет

Не задавался вопросом, что это очень сильно зависит от задачи, или это твоё суеверие? Случаем не ММ МГУ закончил?

Quickern ★★ ()
Ответ на: комментарий от anTaRes

шшас проверю до пары

x-com: ko
красные квадраты на задних планах, кнопки видно и я доклацал до старта новой игры, далее мин. 5 ждал пока крутится значок загрузки и вырубил

civ5: ok
даже игра создалась как-то быстрее чем на блобе, чувак только начал рассказывать и тут уже можно жать «дальше», в самой игре вроде так-же как на блобе (это civ, тут нужно до конца доиграть, когда мульен юнитов по карте бегает и все вертится)

anTaRes ★★★★ ()
Ответ на: комментарий от Novell-ch

Здорово.

Кстати Вадим Гирлин на #radeon irc всё грозился написать аналог r600-sb для radeonsi. Он случаем на LORе не бывает?

anonymous ()
Ответ на: комментарий от Quickern

Не задавался вопросом, что это очень сильно зависит от задачи, или это твоё суеверие? Случаем не ММ МГУ закончил?

Из моего опыта, использование float приводило к некорректным результатам. Нет, не МГУ.

anonymous ()
Ответ на: комментарий от anonymous

Из моего опыта

Т.е. я прав.

Так вот, все зависит от задачи и требований к результату.

Quickern ★★ ()
Ответ на: комментарий от anonymous

Мда, какие унылые цифры даже в сравнении с HD 6000-й серии. Порядок разницы.

anonymous ()
Ответ на: комментарий от anonymous

Это верно, если вы работаете с матрицами. Однако есть методы расчёта, например, основанные на учёте ближайших соседей, которые требуют большого объёма счёта, но не нуждаются в двойной точности.

Vudod ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.