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

Откуда: loopback
Сообщений: 41026
Dima T
функцию Random() заменить на генератор который во всех ЯП даст одинаковый результат.

Я глубоко не изучал сорц. Поверхностно могу предположить:

В данном конкретном сорце Random используется для моделирования случайного отклонения луча.
Из за этого горизонт - расфокусирован и на на ближней дистанции (64 раза долбим 1 пиксель) происходит
нечто вроде antialiazing. Достигаем сразу 2 эффекта.

В некотором приближении можно эту функцию даже заменить на генератор последовательности. Получим
более правильные (не шумящие тени).
4 сен 15, 14:22    [18108725]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
Кстати прошу прощения. Я закоммитил Winodws-ные переводы строки. Надеюсь никого это не напрягло.
4 сен 15, 14:23    [18108739]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Изопропил
Member

Откуда:
Сообщений: 31156
YesSql,

кроме версии - хорошо бы ключики компилятора показать, касательно оптимизатора
4 сен 15, 14:23    [18108741]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13712
mayton
Dima T
функцию Random() заменить на генератор который во всех ЯП даст одинаковый результат.

Я глубоко не изучал сорц. Поверхностно могу предположить:

не надо это. Просто я cначала не понял что это картинка, поэтому задумался как проверить что в файле то что надо? Открыть в ирфане и посмотреть достаточно.

логин dmitriyt
4 сен 15, 14:36    [18108830]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
YesSql
Guest
Изопропил
YesSql,

кроме версии - хорошо бы ключики компилятора показать, касательно оптимизатора


командная строка одна и та-же.

-Wextra -pedantic -O2 -std=c++0x -msse4
4 сен 15, 14:36    [18108831]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
MasterZiv
Другое прикольное направление развития этого дела было бы задание других начальных данных для того, чтобы шарики на картинке писали какие-то другие буквы, например, ZIV... -- т.е. твои инициалы.

В старые времена можно было-б "запилить" апплет или ActionScript который рисует
в браузере нечто нереальное. Свой логотип в уголке с анимацией. А щас на фоне
Unity и WebGL оно конешно не смотрится.
4 сен 15, 14:40    [18108850]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

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

Я глубоко не изучал сорц. Поверхностно могу предположить:

не надо это. Просто я cначала не понял что это картинка, поэтому задумался как проверить что в файле то что надо? Открыть в ирфане и посмотреть достаточно.

логин dmitriyt

Добавил в группу Developers. Пробуй.
4 сен 15, 14:42    [18108872]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
У меня - 47 секунд. Ноутбук.
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz, 2501 Mhz, 2 Core(s), 4 Logical Processor(s)
MinGW с опцией -O
4 сен 15, 15:30    [18109287]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
Задумался.

Хм... портинг оказался не так тривиален. Автор подкинул много подводных камней.

Этот код не собирается в Java. Ругается на тип второго параметра цикла.
	for (int k = 19; k--;)
		for (int j = 9; j--;)


Плюс игры с перегузкой операторов. Возврат по ссылке. И специфичные сишные способы
кастинга и конструирования сущностей подбрасывают проблем.

Пока думаю. Как-бы побить эту задачу на фазы. Боюсь что с первого раза
самолёт не полетит. Возможно надо будет сравнивать с оригиналом состояние
стека на более ранних этапах. Дебажить.
4 сен 15, 15:59    [18109489]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13712
Вообще не тривиален. Пытаюсь перегнать в C#
           for (Int32 k = 19; k != 0; k--)
                for (Int32 j = 9; j != 0; j--)
4 сен 15, 16:11    [18109587]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13712
mayton
Плюс игры с перегузкой операторов. Возврат по ссылке.

В жаве этого нет?

Сначала думал перегнать под фокс, там перегрузок операторов нет, попробовал отказаться от перегрузки в твоем исходнике. Немного не доделал, плюнул, споткнулся на строке
p = sampler(Vector(17, 16, 8) + t, !(t * -1 + (a * (Random() + x) + b * (y + Random()) + c) * 16)) * 3.5 + p;

Если надо могу допилить, там чуть-чуть осталось.
Плюнул потому что в фокс все равно такое не полезет
Vector l = (Vector(9 + Random(), 9 + Random(), 16).Add(h.Mul(-1))).Not();

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

Откуда: loopback
Сообщений: 41026
Dima T
mayton
Плюс игры с перегузкой операторов. Возврат по ссылке.

В жаве этого нет?

К сожалению да. Чтобы вернуть double by reference необходимо передать любой
объект-обёртку который этот double в себе содержит.
4 сен 15, 16:32    [18109776]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
Dima T
Вообще не тривиален. Пытаюсь перегнать в C#
           for (Int32 k = 19; k != 0; k--)
                for (Int32 j = 9; j != 0; j--)

Дима стой. Тут не всё так просто. На последней итерации k=0 мы должны войти
в тело цикла. Чтоб было от [19 до 0] включительно. Мне кажется надо условие
изменить.
4 сен 15, 16:33    [18109793]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
Dima T
Если надо могу допилить, там чуть-чуть осталось.
Плюнул потому что в фокс все равно такое не полезет

Ээ... я предлагаю во первых не спешить. Подобные рефакторинги делаются
микроскопическими шагами. Чуть-чуть сделал - затестил e.t.c.
Вобщем я не знаю как в этом вашем фоксе. А в шарпах и Java
я предлагаю закомметарить всё кроме main(), trace(), sample()
деклараций. Создать цепочку бранчей типа "c-harp.refactor.step01, .step02...."
и потихоньку коммитить.

Сначала зарефактирить main. Убедится что количество итераций совпадает
с С++ - вариантом. Потом по стеку потихоньку раскручивать.

В фоксе тоже наверное можно закомменарить всё.
4 сен 15, 16:38    [18109830]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13712
Я уже понял что напутал.
это
for (int k = 19; k--;)

равносильно этому
for (int k = 18; k >= 0; k--)

т.е. внутри цикла k = 18 ... 0
4 сен 15, 16:38    [18109833]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
19 тоже должно быть вроде.
4 сен 15, 16:39    [18109847]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13712
mayton
Dima T
Если надо могу допилить, там чуть-чуть осталось.
Плюнул потому что в фокс все равно такое не полезет

Ээ... я предлагаю во первых не спешить. Подобные рефакторинги делаются
микроскопическими шагами. Чуть-чуть сделал - затестил e.t.c.

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

Откуда: loopback
Сообщений: 41026
Я думаю что на сях нет смысла. В топике с Лётчиком-Петровым мы спорили на тему
языков-платформеров и managed memory. Тоесть моё пристальное внимание будет обращено на
C#/Python/Java. И еще на Lisp если Илья будет помогать.
4 сен 15, 16:44    [18109902]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13712
mayton
19 тоже должно быть вроде.

изврат это сишный.
Второй параметр - условие. Оно проверяется перед началом цикла. Т.е. для проверки берется значение k, затем -1, затем итерация.
Я умничать не стал, просто запустил
	for (int k = 19; k--;) {
		fprintf(stderr, "%d ", k);
	}

Результат
18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
4 сен 15, 16:45    [18109910]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
От жеж сцуко. Точно. Меня сбил с толку пост-инкремент.
Из-за того что стоит не в той позиции.
4 сен 15, 16:47    [18109937]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13712
Портировал в C#, результат на картинке

Как бы похоже, но не очень, теперь понять бы в чем косяк.

Сложно все и сразу поправить. Думаю надо просто повторить портирование кусками. Попозже начну второй круг.

К сообщению приложен файл. Размер - 37Kb
4 сен 15, 16:59    [18110033]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
Dima T, отлично. Просто где-то циклическое переполнение. Надо поставить побольше asserts или
охранных условий. К примеру где Vector используется в качестве цвета - компоненты XYZ (RGB)
должны быть нормированы. Там либо от 0.0 до 1.0 либо еще что-то в этом роде.
4 сен 15, 17:02    [18110057]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
Для ускорения цикла багофикса я предлагаю тебе чаще коммитить. У нас нет ограничений
на сборщик поэтому можно вливать даже глючные сорцы. Сообщество будет активнее тебе
помогать когда есть сорц.
4 сен 15, 17:04    [18110070]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
Dima T
Member

Откуда:
Сообщений: 13712
mayton
Для ускорения цикла багофикса я предлагаю тебе чаще коммитить.

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

PS Сравнил побайтово с нормальным: первые 282173 байта совпадают или разница значений на 1-2, а дальше начитаются сильные разбеги.
4 сен 15, 17:12    [18110153]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный бенчмарк CPU (part-1)  [new]
mayton
Member

Откуда: loopback
Сообщений: 41026
Не надо побайтово. В printf в качестве аргументов херячат double-типы. Совершенно корректно
будет просто задать некий эпсилон = 0.5 и сравнивать пределы попадания.
4 сен 15, 17:16    [18110183]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6 7 8 9 10 .. 43   вперед  Ctrl
Все форумы / Программирование Ответить