@ProCxx

Страница 2387 из 2477
Евгений
28.09.2018
19:45:00
Ну я не понял просто...
Прости static inline value_t data_to_val_aux (const matches_and_old_values_swath *swath, size_t index, size_t swath_length)

Ilia
28.09.2018
19:45:12
Я на телефоне, тут все непросто со строками...

Евгений
28.09.2018
19:45:21
та я понял уже

Google
Ilia
28.09.2018
19:50:54
Прости static inline value_t data_to_val_aux (const matches_and_old_values_swath *swath, size_t index, size_t swath_length)
. Ну не знать, ничего там особенно страшного кроме цикла нет..

Евгений
28.09.2018
19:51:28
. Ну не знать, ничего там особенно страшного кроме цикла нет..
Вот именно! Сейчас сделаю репорт с этими флагами оптимизации, скину сюда и в холивары

Ilia
28.09.2018
19:52:10
max_bytes сколько может быть?

Евгений
28.09.2018
19:53:22
max_bytes = 8 всегда

ну в моих тестах по крайней мере

ааа, ну да, он ооочень часто 8 равен

Ilia
28.09.2018
19:54:20
max_bytes = 8 всегда
Может тогда выпилишь цикл?

Евгений
28.09.2018
19:54:51
Может тогда выпилишь цикл?
так ведь нельзя :( или как ты предлагаешь?

Ilia
28.09.2018
19:55:15
max_bytes = 8 всегда
Сделай 8 if ов вместо цикла

max_bytes = 8 всегда
В конце концов, комментарий там здоровущий, тоже выкини, вдруг он тоже мешает ...

Евгений
28.09.2018
20:00:53
В конце концов, комментарий там здоровущий, тоже выкини, вдруг он тоже мешает ...
Вот это не помогло if (i < max_bytes) { val.bytes[i] = data[index + i].byte; i++; }

8 раз это написал

Google
Евгений
28.09.2018
20:02:41
Нахрена тебе там i ?
если я уберу, то может sigsegv, потому что я читаю регион другого процесса за его пределами

Ilia
28.09.2018
20:03:42
Вот это не помогло if (i < max_bytes) { val.bytes[i] = data[index + i].byte; i++; }
... if ( max_bytes >1) { val.bytes[1] = data[index + 1].byte; } if ( max_bytes >2) { val.bytes[2] = data[index + 2].byte; } ....

Евгений
28.09.2018
20:03:44
Нахрена тебе там i ?
val.bytes[0] = data[index + 0].byte; val.bytes[1] = data[index + 1].byte; Scan 2/3 done in: 5.27022 seconds

получилось :)

но ведь это не решение

Ilia
28.09.2018
20:04:30
но ведь это не решение
Только комментарий обязательно перед этим дебилизмом напиши, во имя чего он был создан.

Matwey
28.09.2018
20:10:27
Я предлагаю запретить код в виде скриншотов постить в чат

По ряду причин

Ilia
28.09.2018
20:12:10
Ну как бэ да но ..

Vitaly
28.09.2018
20:12:24
Я предлагаю запретить код в виде скриншотов постить в чат
Как бы давно. Код длинее 8 строк на пасту, а ссылку в чат.

Ilia
28.09.2018
20:13:02
По ряду причин
Просто мы не всегда успеваем перехватить....

A.D.
28.09.2018
20:13:45
а ботов нет таких, которые бы постили на пасту и складывали ссылки?

Matwey
28.09.2018
20:14:29
Интереснее, можно ли сделать интеграцию телеграма и пасты. Чтобы телега превью показывала в человеческом виде

Евгений
28.09.2018
20:18:02
Только комментарий обязательно перед этим дебилизмом напиши, во имя чего он был создан.
// for(i = 0; i < max_bytes; i++) { // val.bytes[i] = data[index + i].byte; // } if (max_bytes > 0) { val.bytes[0] = data[index + 0].byte; ... if (max_bytes > 7) { val.bytes[7] = data[index + 7].byte; }}}}}}}} Какой-то лисп получился :)))))))))))))

Vitaly
28.09.2018
20:19:32
Интереснее, можно ли сделать интеграцию телеграма и пасты. Чтобы телега превью показывала в человеческом виде
Не нужно в чат простыни кода вбрасывать ибо многие здесь сидят не только с десктопа-ноутбука, а ещё и с телефонов. Ссылка на paste-сервис - лучший выбор ибо там есть и подсветка синтаксиса, и поддержка правильного отображения кода на мобильных.

Google
Alexander
28.09.2018
20:20:14
Хмммммм. Интересно
Ты асм скидывал или нет?

Ilia
28.09.2018
20:20:59
Зачем тебе там malloc и strcat ?

Евгений
28.09.2018
20:21:04
Ты асм скидывал или нет?
Неа. Но вот если руками анролл сделать, как мне илья предложил, то всё нормуль

Matwey
28.09.2018
20:21:34
Matwey
28.09.2018
20:22:16
Там можно крестик нажать
Я не могу заставить всех его нажимать

Евгений
28.09.2018
20:22:32
Ты издеваешься? Почему ты до сих пор этого не сделал
Ок, ща сделаю. Давай я тогда тебе скину результаты из vtune amplifier'a или как-нибудь ещё?

Alexander
28.09.2018
20:23:02
Я не могу заставить всех его нажимать
Ну пока в правилах этого нет, то это не строгое требование. Если так бесит, то мы можем обсудить это в админке и принять решение

Matwey
28.09.2018
20:24:25
Ну ты действительно веришь, что если что-то прописать в правилах, то все обязательно начнут этому следовать? Мне кажется именно эту проблему лучше решать программно. Пусть телеграм делает превью ссылок, но пусть делает это максимально информативно для пастбинов всяких

Ruslan
28.09.2018
20:48:57
Неа. Но вот если руками анролл сделать, как мне илья предложил, то всё нормуль
А ты на gcc.godbolt.org уже сравнивал асмовыхлоп от твоих экспериментов?

Евгений
28.09.2018
20:59:01
Google
Ruslan
28.09.2018
20:59:12
Все и не надо

Запилить луп, функцию и что там у тебя еще

и поиграться с атрибутами и инлайном

Евгений
28.09.2018
21:00:10
и поиграться с атрибутами и инлайном
и инпут откуда-то взять, а то оптимизация оптимизирует в 0 секунд

Ruslan
28.09.2018
21:00:25
Инпут нагенерить, чо

или передавать аргументом

Евгений
28.09.2018
21:09:34
Короч, вот результаты с О3 // ################################ // # # call # inlined # // ################################ // # loop # 11.6094 # 8.2535 # // # unrolled # 8.62784 # 8.11148 # // ################################ Мы типа видим, что если функцию заинлайнить руками(inlined), то это быстро. Потом, спасибо Илье, можно обойтись без этого, но сделать анролл цикла в функции. И типа видим, что если всё сделать по-человечески, то произволительность самая худшая

Евгений
28.09.2018
21:11:43
Или я пропустил?
Не. Результаты с О3, вызовом и циклом? Или все 4 варианта вместе?

Евгений
28.09.2018
21:13:42
Можешь 4 варианта
завтра, ок? голова уже ВаТнАя)00

Ruslan
28.09.2018
21:13:51
И потестируй начисто с инлайнингом

Вангую у тебя не векторизуется из-за зависимостей

потому результаты странные и дело не в инлайне

то есть у тебя все в кучу SIMD + inline + unroll

и тут сложно понять что не работает\

Google
Евгений
28.09.2018
21:19:12
Отключи AVX
conf: call, loop -mtune=x86-64 -march=x86-64 -g -O3 -DNDEBUG 12.6343 seconds

оно?

Ruslan
28.09.2018
21:20:15
Похоже, но надо убедиться, что march не включает

ДОку на гцц смотреть

http://gcc.gnu.org/onlinedocs/gcc/x86-Options.html

Страница 2387 из 2477