Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 5 6 7 8 9 [10] 11 12 13 14 .. 43   вперед  Ctrl
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
А это чё за хинт такой? Для padding? Или для супер-ассЭмблерных оптимизаций?

struct vec3 {
union{
 double4 m;
  struct{
   double x,y,z;
  }
} 
7 сен 15, 15:56    [18119500]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Изопропил
Member

Откуда:
Сообщений: 30987
mayton
Зато я почти запилил модульные тесты для вектора.

а результат то есть?
или только модульные тесты?
7 сен 15, 16:13    [18119680]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
drsm
пусти меня pls http://sourceforge.net/u/dr-sm/profile/

Заходи. Открыто.
7 сен 15, 16:13    [18119681]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
Изопропил
mayton
Зато я почти запилил модульные тесты для вектора.

а результат то есть?
или только модульные тесты?

Пока - по мелочам. Векторы - шмекторы. Но скоро допилю сравнение двух картинок с допуском
отклонения.
7 сен 15, 16:14    [18119687]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
Коллеги. Прошу вас в корне каждого проекта сделать readme.txt по аналогии с

https://sourceforge.net/p/card-raytracer-bench/code/HEAD/tree/trunk/java/readme.txt

Это нужно не мне, а тем мемберам которые вдруг(!) внезапно захотят зайти и чёнить
скомпилировать.
7 сен 15, 16:19    [18119730]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
drsm
для сборка никакая не нужна, нужно установить только это https://nodejs.org/dist/latest/

Круть. NodeJS у меня уже давно стоит.

А Lua подходит под сорцы? Она вообще - JS ? И насколько отличается?
7 сен 15, 16:27    [18119797]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34417
Dima T
MasterZiv
А зачем тебе эта строчка ? Или просто из интереса ?

Я думаю, эта строчка просто включает и выключает использование консоли и консольного вывода, и, соотв., делает/не делает её инициализацию.

Я к тому что любая строчка, не обязательно вывод в консоль, может заставить оптимизатор сгенерить совсем не такой код, как без этой строчки. В итоге имеем совсем другое время работы (до 10% разницы), что не дает оценить то ли внесенные изменения помогли, то ли оптимизатор. Я на это уже натыкался 18115703 там еще веселее, убираем вывод в консоль - тормоза начинаются.

Поэтому все результаты моих исследований какой код быстрее надо забыть и начинать сначала. С отключенным оптимизатором.


Какой в этом смысл ? Наоборот, надо врубать оптимизатор на масимум.
7 сен 15, 16:51    [18119912]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34417
mayton
MasterZiv
Зачем в Java всю эту бадягу развели с путями, с пакетами, классами ?

Дефолтный пакет, вложенные классы (статические) -- и всё, в итоге у тебя, Марк, в коде будет 50% кода балластом, ничего делать не будет.

Да. Я получаю сегодня приз за самый убобищный подход к исходникам. Тешу себя надеждой что
Classloader не сильно проседает от путей и не влияет на перформанс в целом.
Зато я почти запилил модульные тесты для вектора.


Выложи, я б портировал под Python...
7 сен 15, 16:51    [18119914]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34417
По последним результатам у меня шарики пропадают... #-)
7 сен 15, 16:59    [18119958]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
MasterZiv
Dima T
пропущено...

Я к тому что любая строчка, не обязательно вывод в консоль, может заставить оптимизатор сгенерить совсем не такой код, как без этой строчки. В итоге имеем совсем другое время работы (до 10% разницы), что не дает оценить то ли внесенные изменения помогли, то ли оптимизатор. Я на это уже натыкался 18115703 там еще веселее, убираем вывод в консоль - тормоза начинаются.

Поэтому все результаты моих исследований какой код быстрее надо забыть и начинать сначала. С отключенным оптимизатором.


Какой в этом смысл ? Наоборот, надо врубать оптимизатор на масимум.

Я... кажется понимаю к чему Дима. Когда оптимизатор выключен - это позволяет
тебе видеть реакцию системы на твои улучшения и трекать их. И проверять гипотезы.
Если он агрессивно включен - то ты улучшаешь к примеру инлайнинг а он не реагирует.
И хер ево знает хороши-ли твои улучшения или оптимизатор шибко умён.
7 сен 15, 17:35    [18120142]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13348
Подскажите кто понимает как все считается.
+ Исходник
int tracer(Vector o, Vector d, double &t, Vector& n) {
	t = 1e9;
	int m = 0;
	double p = -o.z / d.z;
	if (.01 < p){
		t = p;
		n = Vector(0, 0, 1);
		m = 1;
	}
	for (int k = 19; k--;)
		for (int j = 9; j--;)
			if (G[j] & 1 << k) {
				Vector p = o + Vector(-k, 0, -j - 4);
				double b = p % d; 
                                double c = p % p - 1; 
                                double q = b * b - c;
				if (q > 0) {
					double s = -b - sqrt(q);
					if (s < t && s > .01) {
						t = s; 
						n = !(p + d * t);
						m = 2;
					}
				}
			}
	return m;
}

Там где выделено по сути выдаются результаты, надо ли при этом продолжать гонять циклы?
Добавил счетчик, после нахождения первого ответа: происходит еще 879 млн. итераций.
Добавил в тот if() k=-1;j=-1 чтобы выпасть из цикла. Картинка визуально хуже не стала.
7 сен 15, 17:42    [18120183]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13348
Dima T
Добавил в тот if() k=-1;j=-1 чтобы выпасть из цикла. Картинка визуально хуже не стала.

Наврал. Стала хуже. Незаметно если только ее смотреть, но если сравнить с исходной - есть разница.
Придется гонять циклы.
7 сен 15, 17:48    [18120224]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
Давай просто предположим. Если луч ударился в зеркальный шарик то есть 3 варианта.

1) Он отразился в клетчатый пол. Расчёт простой.
2) Он отразился в ambient(в небо). Закрашиваем градиентом в соотв с закраской нашего неба.
3) Отразился с другой шар. Здесь есть варианты. Если шары идеальные то на их поверхности
есть такие точки типа аттракторов в которые луч попадает в бесконечный цикл и кружит там.
Для предовтращения мы задаём некоторое затухание луча по его расстоянию которое он прошёл.
Либо считаем что поверхность шара не совсем зеркало и гасим луч после каждого удара.
У нас цвет как и координата задаётся тройкой Vector(R,G,B) поэтому надо искать где там
эта формула и рубить ее чуть раньше. При этом луч должен вернуть идеальный черный цвет
в глаз наблюдателю в точке аттрактора.
7 сен 15, 18:00    [18120298]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34417
mayton
MasterZiv
пропущено...


Какой в этом смысл ? Наоборот, надо врубать оптимизатор на масимум.

Я... кажется понимаю к чему Дима. Когда оптимизатор выключен - это позволяет
тебе видеть реакцию системы на твои улучшения и трекать их. И проверять гипотезы.
Если он агрессивно включен - то ты улучшаешь к примеру инлайнинг а он не реагирует.
И хер ево знает хороши-ли твои улучшения или оптимизатор шибко умён.


По-моему так бред...
7 сен 15, 18:07    [18120315]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
Может быть. Я помню единственное ценное требование по выключению
оптимизации - это когда мы в debug-е.
7 сен 15, 18:09    [18120323]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34417
mayton
Давай просто предположим. Если луч ударился в зеркальный шарик то есть 3 варианта.

1) Он отразился в клетчатый пол. Расчёт простой.
2) Он отразился в ambient(в небо). Закрашиваем градиентом в соотв с закраской нашего неба.
3) Отразился с другой шар. Здесь есть варианты. Если шары идеальные то на их поверхности
есть такие точки типа аттракторов в которые луч попадает в бесконечный цикл и кружит там.
Для предовтращения мы задаём некоторое затухание луча по его расстоянию которое он прошёл.
Либо считаем что поверхность шара не совсем зеркало и гасим луч после каждого удара.
У нас цвет как и координата задаётся тройкой Vector(R,G,B) поэтому надо искать где там
эта формула и рубить ее чуть раньше. При этом луч должен вернуть идеальный черный цвет
в глаз наблюдателю в точке аттрактора.


Кстати, кто понимает алгоритм, или знает литературу по нему -- поделитесь.
Я лично пока не врубался, читал только код на С++.

Но что я уже понял -- это что в G лежит маска, которая задаёт текст, который пишется шариками --
в нём лежит перевёрнутая и зеркально отображённая битовая маска, которая задаёт положение шариков
на воображаемом полотне, на котором они как бы висят. Меняя маску, можно менять и буквы.
7 сен 15, 18:11    [18120329]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
drsm
Member

Откуда:
Сообщений: 235
MasterZiv
mayton
Давай просто предположим. Если луч ударился в зеркальный шарик то есть 3 варианта.

1) Он отразился в клетчатый пол. Расчёт простой.
2) Он отразился в ambient(в небо). Закрашиваем градиентом в соотв с закраской нашего неба.
3) Отразился с другой шар. Здесь есть варианты. Если шары идеальные то на их поверхности
есть такие точки типа аттракторов в которые луч попадает в бесконечный цикл и кружит там.
Для предовтращения мы задаём некоторое затухание луча по его расстоянию которое он прошёл.
Либо считаем что поверхность шара не совсем зеркало и гасим луч после каждого удара.
У нас цвет как и координата задаётся тройкой Vector(R,G,B) поэтому надо искать где там
эта формула и рубить ее чуть раньше. При этом луч должен вернуть идеальный черный цвет
в глаз наблюдателю в точке аттрактора.


Кстати, кто понимает алгоритм, или знает литературу по нему -- поделитесь.
Я лично пока не врубался, читал только код на С++.

Но что я уже понял -- это что в G лежит маска, которая задаёт текст, который пишется шариками --
в нём лежит перевёрнутая и зеркально отображённая битовая маска, которая задаёт положение шариков
на воображаемом полотне, на котором они как бы висят. Меняя маску, можно менять и буквы.


тут же в комментах к коду все есть почти, далее по ключевым словам
7 сен 15, 18:33    [18120392]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
Ага точно. Я про это забыл.

Вот тут луч затухает. Можно поэкспериментировать и получить разные шары и перформанс.
return v(p,p,p)+S(h,r)*.5; // Ослабляем цвет на 50%, так как он отскакивает от поверхности (* .5)
7 сен 15, 18:35    [18120400]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13348
MasterZiv
По-моему так бред...

Смотря какие цели. Лично мне хочется понять какие именно конструкции быстрее работают. В т.ч. их комбинации.

MasterZiv
Но что я уже понял -- это что в G лежит маска, которая задаёт текст, который пишется шариками --
в нём лежит перевёрнутая и зеркально отображённая битовая маска, которая задаёт положение шариков
на воображаемом полотне, на котором они как бы висят. Меняя маску, можно менять и буквы.

Тут генератор текста выкладывал 18118194 Можешь побаловаться.
7 сен 15, 18:56    [18120446]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
Откуда возникла сжатая бит-матрица? Пол Гекберт экономил сорц.
А вам зачем экономить? Задайте его двумерным массивом.
7 сен 15, 19:01    [18120461]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Зимаргл
Guest
mayton
А это чё за хинт такой? Для padding? Или для супер-ассЭмблерных оптимизаций?

struct vec3 {
union{
 double4 m;
  struct{
   double x,y,z;
  }
} 

Да, я пробовал векторные инструкции на коротких массивах. Оказалось невыгодно по скорости. Хотя мне лень было лезть смотреть что там сгенерилось в ассемблерном коде - но по результату очень похоже что пока что нет автоматического выравнивания структур на стеке.

Но потенциал интересный - берешь и множишь пару массивов float[8]
7 сен 15, 19:28    [18120493]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Изопропил
Member

Откуда:
Сообщений: 30987
mayton
Откуда возникла сжатая бит-матрица? Пол Гекберт экономил сорц.
А вам зачем экономить? Задайте его двумерным массивом.

Одномерного выше крыши -уже писали
7 сен 15, 19:34    [18120502]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
drsm
Member

Откуда:
Сообщений: 235
mayton
drsm
для сборка никакая не нужна, нужно установить только это https://nodejs.org/dist/latest/

Круть. NodeJS у меня уже давно стоит.

А Lua подходит под сорцы? Она вообще - JS ? И насколько отличается?

нужно именно iojs ну или ждать выхода четвертой ноды (со дня на день), тк исходник написан на ES6 (это не луа).
закоммитил еще гоу версию (30% уступает плюсам), от синтаксиса и кривого тайпчекинга до сих пор подташнивает.
7 сен 15, 19:53    [18120530]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
За GO - большое thanx.
7 сен 15, 20:54    [18120695]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 39228
В рамках небольшого оффтопа. По ключевым словам GPU...
+





7 сен 15, 21:47    [18120846]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 5 6 7 8 9 [10] 11 12 13 14 .. 43   вперед  Ctrl
Все форумы / Программирование Ответить