Ioann_
Семь лет прошло
Ну прошло и прошло, а воспоминания остались. Что мне теперь переписывать все. Вот на тот момент было так как я пишу. И потому я оставил и писал.
Anonymous
Сомневаюсь.
Evgenii
сомневаюсь
Ioann_
На полной оптимищации само собой. Пруфы я поищу. Я вообще мимо проходил так то :)
Ioann_
О фаст
Aidar
march какой
Constantine
Тут возник рандомный вопрос. Вот есть у меня template <SomeType> void f(SomeType) {}; template <SomeType> using f_is_detected_helper = decltype(f(std::declval<SomeType>())); //отправить f_is_detected_helper в is_detected Проблема: можно словить ODR violation если SomeType будет IncompleteType
Aidar
может ты мультиплатформенно скомпилил
Aidar
где нет simd ваще
Ioann_
Ну если честно я чо еще и настройки все должен помнить. Никто ж вас на фасме кодить не заставляет.
Aidar
march=native выберет настройки под твой проц
Ioann_
Но с ваших слов ощущение что сегодняшние компили оптимайзят на все сто. И вот компиль который ввыйдет через 5 лет не лучше будет.
Ioann_
Вбросов я не делал, ну наверное. Просто отписал станиславу, что не все так плохо.
Berkus
передачи управления на asm
работа с портами спокойно на си пишется
Berkus
атомарные операции
для этого все есть и в си и в си++
Ioann_
Сначала надо дизасмить с++ код и смотретл его промахи. Потом уже....
Berkus
Ээээ.... станислав - скорее наоборот, 98% что человек сможет лучшет, если он специалист
смотри ассемблерный код пишет 1 "специалист" оптимизации в компиляторе _несколько десятков настоящиз специалистов_ аргумент понятен?
Ioann_
И сколько среди этих спецов студентов работающих за двацатку в интеле ?
Constantine
Я бы предложил такой аргумент: знаешь ли ты, что можно выполнять деление на 255 без деления?)
Aidar
какая разница всеравно ревьювят
Ioann_
Да что то в интеле вакансии только на интернов.
Aidar
твой код ревьювишь только ты скорее всего
Ioann_
Но и не с десяток человек
Ioann_
Я так то ваще чистый асм использовал только когда дрова писал и ... еще кажется когда делал порт(эмуляцию) steam(такой игровой сервис) апи
Ioann_
Ну и в математике раньше.
Evgenii
Но и не с десяток человек
ну ты посмотри сколько контрибьюторов у ллвм и сколько среди них реальных спецов и как они перформанс проверяют
Constantine
Вообще напомнило одну историю. На локальном проверяющем сервере решения на яве работали _зачастую_ лучше, чем аналогичные решения на С++. А потом обнаружили, что в настройках компилятора все это времени не было -O2
Ioann_
Братан, да только студию открою на телефоне и сразу
Ioann_
И я вообще вброс не устраивал. Так то не гоните на меня. Это ж водогрей накинул.
Ioann_
Дрова я писал коммерчиские для управления станками с ЧПУ
Constantine
Да а почему в C++ нет стандартных функций умножения с расширением? 32*32=64
Aidar
вот это хз
Aidar
может это особеность онли х86 хз
Aidar
я не шарю
Constantine
или компилятор догадается, что так надо интерпретировать 1LL * x * y;
Aidar
ну 64*64=128
Aidar
а int128_t нету
Ioann_
В гцц есть вроде
Evgenii
давайте длинку в стандарт)
Aidar
wide_float хочу еще
Ioann_
Рациональные числа сразу
Constantine
https://godbolt.org/g/GY3Cek
Aidar
basic_string<wide_int<....
Constantine
не догадывается
Ioann_
Вот мацкрософт чем плох - тем что long double
Ioann_
Нету !
Evgenii
wide_int же
ну там конкретные типы, а arbitrary length нет, не?
Constantine
wide_int же
Его же нельзя без асма писать
Constantine
Там нужно уметь делать 32*32=64 и adc
Aidar
https://godbolt.org/g/GY3Cek
https://godbolt.org/g/dCE6fY
Evgenii
Его же нельзя без асма писать
это проблема компиляторов)
Constantine
https://godbolt.org/g/dCE6fY
Мдя... проблема была в O2 😆
Constantine
В любом случае нужно adc
Constantine
Сложение с добавлением флага переноса
Berkus
ответ должен быть очевиден
Ioann_
ну все же, кое что есть: https://habrahabr.ru/post/318916/
Ioann_
Некоторая отсылка на то как, гди и почему используют asm - ну и естественно результаты :)
Berkus
ну это waste of resources если честно
Ioann_
Ну и опять же, я холивар не начинал. Собственно смысла в этом нету, ибо пруфы будут требовать только с меня. Хотя, мне кажется обе стороны должны бы. Плюс, деньги мне за это не заплатят :)
Berkus
должны по идее те, кто делают controversial заявления
Ioann_
Ну, я таких заявлений не делал. Просто отписал Станиславу, что он может и ошибаться. То есть процент явно не 98. Надо понимать, что то что для вас вглядит фантастикой, для особо одаренных(я не про себя) - таковым не является. Просто как пример: я вот не могу решить задачу E Div.1 с олимпиадных ресурсов за два или три дня, может за месяц - смогу. Но есть те, кто могут и могут это за 30 минут. И таких - не один процент и не два, много больше.
Berkus
и это не очень полезное преимущество, так как через два месяца выходит новое ядро и на нем этот код начинает делать фигню
Berkus
а те кому это сопровождать - тратят недели не понимание этого недокументированного кода и выкидывают его как только могут переписать его нормально
Ioann_
Надо смотреть по ситуации. Но, положа руку на сердце лет 7 назад, она явно была хуже чем сейчас.И то что писал я на чистом асме - работало и работало быстро, в т.ч и SIMD. Сегодня ситуация лучше с компиляторами, и потому я уже не бросаюсь в бой с ревом и кулаками. Но осадок семилетней давности остался. Я же все таки писал код для крупных заказиков (Боинг, Материалайз, Сименс, SW и другие)
Aidar
Ппц ты старый
Ioann_
Ну так некоторые проекты вообще еще в девяностых писались. Например 3D max - и многие их вещи с того времени используются и не сильно меняются. Ну то есть, не так сильно, чтобы каждый новый компиль ждать
FailsBot
USAGE: /help - prints this message; /vzhuh [message] - do vzhuh; /start - info about bot.