Ioann_
Сразу все ядро свое и потестирую
Ioann_
Ну у них, выходит что ICC и GCC - примерно равны, но тесты конечно оставляют желать лучшего - std::accumulate, std::transform
RattenKong 🦧🐀🦍️
я забыл, в каком стандарте ввели конструкцию auto [foo, bar] = {2, 2.0}; ?
RattenKong 🦧🐀🦍️
и как она называется
Ioann_
Ioann_
Ты про это ?
RattenKong 🦧🐀🦍️
Ioann_
Ну вот скрин выше - у всех все равно
Ioann_
по опциям, если я верно все перевел
Ioann_
мне не сильно просто этого чувака воспринимать на слух, но в целом, возможно
Ioann_
Ну, пример тут надуманный, даже если и ICC впереди, он существенен при hadr computations
Ioann_
Ну во-первых, даже и этот показывает - не сильно, но все же
Ioann_
Ну, я не знаю, у меня много такого кода, где это может быть показательно
Ioann_
надо просто скомпилить под GCC на лине
Ioann_
у меня есть набор тестов, но под GCC я их не переводил
Aidar
жесть
Ioann_
Они все под Вижлу
Aidar
он же пишет векторизованные штуки зачемто сам
Ioann_
Да вроде все должно быть, только тебе makefile придется вбивать
Ioann_
Aidar
до сих пор не понимаю нафига вручную писать это причем компилить не выставляя архитектуру
Ioann_
тогда, можно попробовать это: https://github.com/IvanKamynin/KDTree/tree/master/KD3DTree
Ioann_
Сможешь собрать ?
Aidar
типа ты говоришь компилятору не векторизуй пж и сам векторизуешь
Ioann_
до сих пор не понимаю нафига вручную писать это причем компилить не выставляя архитектуру
Потому что есть места где 4-мя командами можно посчитать сразу 4 скалярных произведения
Ioann_
тогда, можно попробовать это: https://github.com/IvanKamynin/KDTree/tree/master/KD3DTree
тут тесты есть сразу, вроде как код документирован довольно обширно, ну и все работает без падений, хотя не ручаюсь :)
Ioann_
Единственная проблема, что код не самый новый, далеко, но я думаю, что покатит
Evgenii
я б прогнал тесты если б был тестсьют в стиле запусти и забудь
Ioann_
Ну там его построение, да и поиск
Ioann_
тока там еще вроде как open mp - если чего, его просто отключи, к херам и все его функции тоже покомментить придется :)
Evgenii
тут именно так, если собирать в VS
ну лучше бы что-нибудь более general purpose
Ioann_
Хотя, там прагмами дело делается, в идеале компиль пропустить может неизвестную прагму
Ioann_
Ну если у тебя его не держит ICC
Ioann_
Я точно знаю что GCC держит на все 100, т.к раньше собирал на этом
Ioann_
Потому что если GCC держит а ICC - нет, то тесты будут не равнозначны, сам понимааешь :D Ну попробуй собрать, мне самому интересно на сколько ICC или GCC быстрее другого
Ioann_
Задача, кстати из разряда важных - т.к деревушки, это не просто что то там, это еще и математика в т.ч
Ioann_
и в изображениях, тоже используется, хотя и редко
Ioann_
ну тут SSE как такового нету, но в другой версии уже есть, и даже более того, я перенес KD TRee на Cuda
Ioann_
ну тут SSE как такового нету, но в другой версии уже есть, и даже более того, я перенес KD TRee на Cuda
А в моем хилом репозитории, есть к слову некий код на CUDA - для solvers
Ioann_
Я бы использовал, но это надо уметь - там проблема не в том, что векторизовать сложно, а в других вещах - в том, что надо понимать когда это уместно
Ioann_
то есть векторизованный код, хорош когда его много, но когда он идет в череде с невекторизованным - скорее всего перфоманс просядет
Evgenii
я б собрал десяток cpu heavy задач и померял бы
Ioann_
хотя, можно сказать, что мол типа - компилятор ж соптимизирует. Но вот у меня ни ICC ни GCC не смогли
Ioann_
я б собрал десяток cpu heavy задач и померял бы
Да, я говорю, что буду как раз проводить, на самом деле не совсем на днях - а как только GUI доделаю, у меня GUI очень сложная задача, и вообще я уже помираю от него. Ну, посмотрим, все зависит от меня ведь :) А там и тесты подъедут, я так то уже давно я самом ядре не ковырялся - с 26-ого июня
Ioann_
и про это тоже никто не забывал :)
Aidar
ну и пиши соответствующе
Evgenii
я б собрал десяток cpu heavy задач и померял бы
а дальше уже все это в скрипт и пусть каждый меряет как хочет
Ioann_
ну, попробуй так, можно и arch впихать
Evgenii
на О3 кстати не все собирается)
Aidar
и про это тоже никто не забывал :)
есть пример того что не векторизуется а ты типа смог, хотя последовательность одинаковая?
Aidar
желательно на мало строчек
Ioann_
ну и фаст мас
Aidar
-Ofast сразу чо уж там
Evgenii
Ofast?
Ioann_
а дальше уже все это в скрипт и пусть каждый меряет как хочет
тут понимаешь в чем проблема, у меня вот в KD три выше - я использую stl, а у себя - нет. Как итог, все это, придется выкладывать, но я не могу все выложить. Я не думаю, что у меня код блестящий и лучше чем у гугла, но думаю, что не хочу, чтобы халявщики его халявили.
Ioann_
Ну за это вижле спасибо :D
Ioann_
Угу, это очень быстрая функция
Ioann_
Расстояние до треугольника в 3D
Aidar
врятли она лезет в кэш инструкций
Ioann_
не знаю, я об этом не сильно еще думал. Но то что нужен - знаю. Потому что, я этим зарабатывал, когда работал на Capvidia
Ioann_
при том зарабатывал - много, очень :)
Ioann_
врятли она лезет в кэш инструкций
Да, я ее как раз векторезовал у себя, стало много быстрее - в три раза. Но даже в таком виде, это работает быстрее чем любой стандартный метод что может прийти в голову даже крутому олимпиаднику :) Тут, используется нахождение минимума квадратичной функции ....
Aidar
интересно как по другому
Ioann_
read that: https://www.geometrictools.com/Documentation/DistancePoint3Triangle3.pdf
Aidar
проекции кидать, кажется то же самое выйти должно
Ioann_
по скорости - нет
Ioann_
там ведь еще, надо отдельно с ребрам работать, если точка как то не так лежит
Ioann_
у меня выходил вроде в 10 раз быстрее, чем проекциями
Aidar
так ты и так отдельно это делаешь у тебя там тыща ифов
Ioann_
так ты и так отдельно это делаешь у тебя там тыща ифов
Да, только оно в целом - по разному будет, при проекциях - надо еще найти какое ребро, путем других мат. решений
Ioann_
Ну ладно, ждем Саню, я жрать пойду готовить :D
Ioann_
Ты тесты то скачал