Войти
ПрограммированиеФорумГрафика

Скорость выполнение GLSL инструкций OpenGL

#0
2:33, 28 янв. 2016

Интересует два вопроса:

1. Как измерить скорость выполнения GLSL кода и особенно отдельной команды аппаратными средствами типа каких то встроенных команд, чтобы узнать за сколько тактов/циклов они выполняются? Какие есть способы?

2. Где можно посмотреть данные о скоростях GLSL инструкций на разных gpu ?

Я нашел только это: http://www.fractalforums.com/programming/shader-function-or-instruction-cost-(performance)/


#1
3:06, 28 янв. 2016

Phisix
> Какие есть способы?
GPU ShaderAnalyzer
> Где можно посмотреть данные о скоростях GLSL инструкций на разных gpu ?
Нигде. Сильно зависит как от gpu, так и от драйверов, т.к. GLSL компилируется в LLVM подобный код, который потом еще транслируется в инструкции. На обоих этапах есть оптимизации, которые могут меняться даже от версии драйверов.

#2
14:31, 28 янв. 2016

MrShoor

Спасибо!

Может все-таки есть какие то данные от производителей gpu? Вот, к прирему, тут указаны следующие данные ( https://www.khronos.org/assets/uploads/developers/library/2015-gt… GTC_Mar15.pdf ):

32 basic math units (aka cuda cores)
  mad, mul, add, mov, min, max, abs, sub, neg, slt, sge, etc.
Cost: 1 cycle per instruction

8 special function units
  sin, cos, 1/x, sqrt, pow, log, exp, etc.
Cost: 4 cycles per instruction

Вот это кол-во циклов на выполнение одной команды разве зависит от драйверов?

#3
14:38, 28 янв. 2016

Phisix
> 2. Где можно посмотреть данные о скоростях GLSL инструкций на разных gpu ?

GLSL нету инструкций

> Вот это кол-во циклов на выполнение одной команды разве зависит от драйверов?

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

#4
15:27, 28 янв. 2016

Phisix
> Вот это кол-во циклов на выполнение одной команды разве зависит от драйверов?

Может зависеть от железа, ну и драйвер может сделать оптимизацию, что этих инструкций вообще не появится.

#5
17:36, 28 янв. 2016

Понятно.

ПрограммированиеФорумГрафика

Тема в архиве.