Anonymous
инструкции новые придумывают, на как в софте gnu gpl так и в железе, свободное железо=)))
Anonymous
поптом весит гигов 16 прога и предъява что у тебя железо говно а не говнософт
Anonymous
Anonymous
а кто vulkan api щупал?
k0rs4r
сейчас уже современные компили обогнать почти нереал. Недавно видел как Rust оптимизирует замыкания (там бекенд llvm ) и офигел
Anonymous
k0rs4r
по-моему тут абстракции потекли )))
Anonymous
инглийский со справочником=)
Anonymous
аналоговое программирование=)
Ruslan
Anonymous
Первая в мире вычислительная машина была создана в 1642 году французским математиком. Она была построена на механической основе и могла складывать только десятичные числа.
Anonymous
Ruslan
Что?)
Такой арифмометр был
Anonymous
компьютерам уже больше 300 лет
Anonymous
доделал на xmm регистрах, пока только AVX и без распараллеливания по потокам:
https://github.com/nistix/crc-utils
Ruslan
Anonymous
Математика Феликс звали?
Vladimir
Это в честь Дзержинского по-моему
Anonymous
жидкостный был компьютер вообще бомба
Ruslan
Anonymous
А, железный
Anonymous
Anonymous
Anonymous
HDD?
Anonymous
heavi
Ruslan
И стоил как самолёт, на котором его перевозили😂
Anonymous
Vladimir
экстишка
Олег
у меня такой в саду валялся...
Дмитро
скажите можно ли комодор компьютер использовать в 2017 теоритически?
Дмитро
можно ли легко делать программы на ассемблере
Дмитро
(для комодор)
Дмитро
просто интересно было бы круто если бы компьютеры были с cpu 2mhz, 8bit. тогда бы компы были бы дешевыми, стоили бы 800 рублей
Anonymous
да нафиг нужен этот калькулятор
Night__Fox
Anonymous
Anonymous
лучше макбук
Дмитро
Anonymous
Anonymous
вон япошки оживили магнитую плёнку терабайты запихивают
Anonymous
только скорость доступа к данным - ЖОПА
Anonymous
Anonymous
зачем покупать, набрал камней с дороги
Evgenii
Evgenii
raspberry zero 5 баксов стоил
Anonymous
Это время уже наступило
/stuff
Ботов нет...
Farhodbek
/stuff
Farhodbek
/stuff
Anonymous
Anonymous
🐙 Antony
Привет всем, нужна помощь в следующей задачке:
🐙 Antony
Есть 2 С++ функции, компилятор превращает их в следующий ассемблерный код: https://godbolt.org/g/Jo5jwD
Нужно понять, какой код будет выполняться быстрее, при одинаковом количестве входных данных. Другими словами, надо сказать, какя из функций будет работать быстре:
https://pastebin.com/raw/piX9WLNj
Volodymyr
🐙 Antony
Не подходит, нужен именно компилятор G++7
Volodymyr
Ну тогда, наверное, написать тестовове приложение и провести измерения самому.
🐙 Antony
Ну это так себе вариант :) Хочется железобетонный ответ вида: решение <Х> быстрее, так как <А,Б,С>. Вторая функция приводима к первой, если <Д,Е,Ф>.
k0rs4r
Должен быть первый. Как минимум потому что в цикле меньше обращений к памяти (2 всего)
🐙 Antony
А можно код правой функции преобразовать к коду левой функции?
Ну тоесть оптимизатор там схалявил, или для такого преобразования ему недлостаточно данных, или преобразование неравнозначное?
k0rs4r
я не спец в плюсах, но там же структуры данных разные, дека против вектора пар
k0rs4r
потому идентично обработать не получится. Надо на реальных данных тестить, и тип данных под алгоритм подбирать, а не под ассемблер
🐙 Antony
Задача с точностью до наоборот:
Один хороший разработчик (не я) хочет добавить к std::deque методы для итерации по чанкам и по элементам чанка. Гипотеза такая, что при этом будет генерироваться более оптимальный код, так как итератор по элементам чанка проще чем итератор по всей деке. Вторая функция - это то, как будет для компилятора выглядеть иетрирование по чанкам с итерированием в них по элементам.
Есть другая гипотеза - что оптимизатор может соптимизировать код, использующий итератор деки автоматически до кода "иетрирование по чанкам с итерированием в них по элементам".
Так вот, первая функция - использует итератор деки, вторая функция - "иетрирование по чанкам с итерированием в них по элементам".
Какая гипотеза подтверждается? :)
k0rs4r
Могу лишь сказать что когда тогда на сайте том смотрел дизасм код - с опцией -O3 для итерации по чанкам генерится с развертыванием циклов и SSE. Потому на больших обьемах данных возможно быстрей будет.
По факту лучше взять профайлер и посмотреть, может это и не узкое место программы вовсе
Nikolay
Есть 2 С++ функции, компилятор превращает их в следующий ассемблерный код: https://godbolt.org/g/Jo5jwD
Нужно понять, какой код будет выполняться быстрее, при одинаковом количестве входных данных. Другими словами, надо сказать, какя из функций будет работать быстре:
https://pastebin.com/raw/piX9WLNj
Не совсем понятно, почему итератор по чанкам должен быть проще, чем итератор по деке, если не лень - распиши подробнее, в чём должно быть преимущество.
В приведённом коде очень похоже, что при итерации по последовательному куску памяти (первый вариант) у нас лучше отработает кэш и будет меньше обращений к медленной памяти, чем во втором.
bilka00
bilka00
но поскольку в первом варианте в цикле меньше операций с памятью он будет быстрей
bilka00
но это мое скромное мнение
bilka00
как говориться на глазок
bilka00
но вполне вероятно что видимо это будет с большими обьемами данных разве что
🐙 Antony
Я вроде как разобрался в первой функции, и она оказалась медленнее.
Цикл итерирования по чанку в первом случае выглядит как
.L2:
cmp rcx, rdx
je .L1
.L6:
add rax, QWORD PTR [rdx]
add rdx, 8
cmp rdx, rsi
jne .L2
Во втором случае:
.L10:
add rax, QWORD PTR [rdx]
add rdx, 8
cmp rdx, rcx
jne .L10
bilka00
мне кажеться во втором случае обработка не такая ижет
bilka00
идет
bilka00
jne .L11
bilka00
и того хватает то что выше еще на одну метку