Anonymous
кто нибудь драйвера пишет?
Mikhail
кто нибудь драйвера пишет?
смотря какие. а что тебе надо?
Anonymous
обсудить написание драйверов на 1 кольце
Mikhail
обсудить написание драйверов на 1 кольце
более конкретно не можешь рассказать что тебе надо?
Anonymous
интересует эмуляция хардварных треков
Anonymous
работал кто?
Mikhail
интересует эмуляция хардварных треков
сори друг, но я понятия не имею о том что ты говоришь.
Anonymous
странно, я думал уважающие себя плюсовики знают ассемблер как минимум на базовом уровне.
Anonymous
а как вы код отлаживаете? или сразу в продакшн несете?
Anonymous
не могу попасть по ссылке
Anonymous
было бы о чем пообщаться
Mikhail
значит не достаточно скилловые чтобы там быть.
Danil
https://t.me/joinchat/AAAAAEH2f4R62LrebHWd7g
Danil
Есть он
Anonymous
я так понял, там тоже не в курсе
Anonymous
supapro
Anonymous
да и разговоры дальше кьюта не уходят
Ioann_
Сейчас Александр протестирует интринсики чистые, и интринсики автокомпилированные
Ioann_
тест самый что ни на есть базовый, то есть в идеале, если компилятор что-то и векторизует, то явно в такой базе, должен уметь делать это хорошо
Ioann_
Что то шланг, то ли оптимизирует супер сильно, то-ли еще что-то
Ioann_
clang++-5.0 -O3 -march=native ../test.cpp ./a.out all ok. ref: 20.77 cycles SSE: 0.00 cycles AVX_4mem: 0.79 cycles AVX_8: 14.18 cycles
Ioann_
но результат SSE явно не реалестичен :D
Ioann_
Ref - это чистый код, без моего вмешательства, а только с компилевским
Ioann_
AVX_8 - это само собой AVX код
Ioann_
И я отмечу, он далеко не идеален - то есть, там есть что улучшить. В том числе и загрузку выровненных данных, пока что там грузятся не выровненные Ж)
Aidar
Код покажешь?
Ioann_
g++-7 -O3 -march=native ../test.cpp ./a.out all ok. ref: 14.16 cycles SSE: 20.55 cycles AVX_4mem: 17.89 cycles AVX_8: 16.15 cycles
Aidar
Лол
Ioann_
секу
Aidar
Точнее понятно как но непонятно как шланг наоптимайзил
Ioann_
Лол
Ну а чо лол то ? На ГЦЦ меньшей версии, работает еще быстрее
Timur
Умнее и умнее, а форса то чем плоха ?
Вчера одна показательная история проходила http://aras-p.info/blog/2017/10/09/Forced-Inlining-Might-Be-Slow/
Ioann_
GCC 6.3: -O3 -ffast-math -march=native ref: 14.43 cycles SSE: 20.45 cycles AVX_4mem: 18.17 cycles AVX_8: 14.86 cycles
Aidar
Выкинул циклы поди
Ioann_
То есть, видно, что гцц ранней версии, работает быстрее чем гцц последней версии
Ioann_
g++-7 -O3 -march=native ../test.cpp ./a.out all ok. ref: 14.16 cycles SSE: 20.55 cycles AVX_4mem: 17.89 cycles AVX_8: 16.15 cycles
Ioann_
GCC 6.3: -O3 -ffast-math -march=native ref: 14.43 cycles SSE: 20.45 cycles AVX_4mem: 18.17 cycles AVX_8: 14.86 cycles
Aidar
Чекните асм там
Aidar
Исправить надо
Ioann_
g++-6 -O3 -march=native ../test.cpp ./a.out all ok. ref: 14.10 cycles SSE: 20.88 cycles AVX_4mem: 18.44 cycles AVX_8: 14.00 cycles
Aidar
g++-6 -O3 -march=native ../test.cpp ./a.out all ok. ref: 14.10 cycles SSE: 20.88 cycles AVX_4mem: 18.44 cycles AVX_8: 14.00 cycles
Ну тоесть твой код в среднем хуже чем компиляторный
Ioann_
14 10, против 14 у меня
Aidar
почему хуже то ?
Я сказал в среднем
Ioann_
ref: 14.10 cycles SSE: 20.88 cycles AVX_4mem: 18.44 cycles AVX_8: 14.00 cycles
Ioann_
Я сказал в среднем
SSE, AVX 4 - не бери в расчет, это очевидно что просто SSE и просто AVX кой то там
Aidar
Короче лоулевельщики опять sosnooley
Ioann_
Ну, теперь среднее - смотри ГЦЦ 7 выигрывает, немного, Шлан значительно проигрывает, и ГЦЦ 6 проигрывает
Ioann_
Вижла проигрывает тоже
Ioann_
хз
Ioann_
Вижла проигрывает тоже
при том на вижле, у меня совсем не ясные результаты
Ioann_
all ok. ref: 45.67 cycles SSE: 15.01 cycles AVX_4mem: 13.51 cycles AVX_8: 12.86 cycles Для продолжения нажмите любую клавишу . . .
Aidar
Ты там Марч не выставил
Aidar
Точнее чё там
Aidar
Векторизацию
Ioann_
Вроде все выставлял
Aidar
Если ты и выйгрываешь разница не стоит того кода
Anonymous
ребят, есть кто на асме кодит?
Aidar
Но ты не выигрываешь
Anonymous
Aidar, раз ты заговорил о оптимизации, может ответишь на несколько вопросов?
Aidar
Нет спасибо я спать
Ioann_
выигрываю в 4 раза
Ioann_
На шланге на 50%
Ioann_
почти что, почему не стоит то ?
Ioann_
Просто меня смущает что на гцц 6.3 оно работает за 14 сек, а на гцц 7 уже за 16
Aidar
Прогоните больше тестов
Ioann_
Но даже при таких раскладах - обгон 3ех из 4кх компилей, уже не среднее, и я отмечу, что код там не идеален
Aidar
Оно кажется не очень устойчивое
Ioann_
там как минимум 3 лишних перессылки делается, и данные не выровнены
Ioann_
icc 17 -O3 -fp-model precise -march=native ../test.cpp all ok. ref: 46.61 cycles SSE: 17.76 cycles AVX_4mem: 12.43 cycles AVX_8: 13.53 cycles
Ioann_
Вот вам интел - мастер векторизации
Ioann_
как говорят
Ioann_
тут результаты правдоподобны
Aidar
Может там просто вижак вставили?