-
- Прелесть какая. Запись визга есть? - General(16.10.2016 19:03)
- посмотрите видео по ссылке. лишает некоторых иллюзий о необходимости ассемблера и прочих оптимизаций. если лень смотреть, основный смысл - надо оптимизировать алгоритмы. ну еще есть си компилятор от интел. - AVF(16.10.2016 15:26, ссылка)
- угу. как же без него. только на масме и в другой крайности - когда нужно что-то малоресурсное..сидящее в трее..простое, как степь :) Царская Морда(155 знак., 14.10.2016 20:40)
- Ох ты и набросила :) Да, есть такая тенденция, я её давно прочувствовал %) под эмбед я вообще ХЗ когда писал, а вот его выхлоп процессить на писюгане -- целые системы горожу. И без асмовых врезок там сложно иногда. Пару раз подходил к такой Николай Коровин(277 знак., 14.10.2016 13:06)
- Я проголосовал бы против ассемблера. misyachniy(212 знак., 13.10.2016 20:19)
- Чего там тасовать? Задача проще выведенного яйца. Вот цикл: Ксения(2368 знак., 13.10.2016 21:32 - 21:39)
- вы серьёзно? временное сохранение/восстановление сильно снижает производительность? Mahagam(397 знак., 16.10.2016 14:40)
- Напишите на С "ymm0 += (ptr1++) * (ptr2++);", скомпилируйте и сравните код в ассемблере. misyachniy(139 знак., 16.10.2016 14:18)
- И на каком компиляторе вы предлагаете мне это сделать? (спрашиваю, чтобы потом вы не говорили, что компилятор был дурак) - Ксения(16.10.2016 14:59)
- gcc (-mavx2 -march=haswell -mfpmath=sse -O3, gcc=6.2) -- для "упакованных флоатов" в gcc нужно встроенные функции использовать -- тот же ассемблер получается... fk0(795 знак., 16.10.2016 16:53 - 17:47)
- А что, очень даже приличный код. Признаюсь, не ожидала. Странно только, что использует более короткие xmm-регистры вместо вдвое более длинных ymm. Именно это и портит всю малину, снижая скорость вдвое. Причем ymm обязаны быть, если это Haswell, Ксения(560 знак., 17.10.2016 00:53)
- а теперь подобный код скормить родному компилятору от интела?? - Mahagam(17.10.2016 10:00)
- Скормила, код получился гадский. Даже если списать качество кода на мое неумение включить там нужную оптимизацию (хотя Yes на вкладке Optimization я выставляла), главным остается все тот же недостаток - считает на коротких регистрах xmm, а более Ксения(270 знак., 17.10.2016 21:40)
- Смотри: fk0(382 знак., 18.10.2016 00:13)
- Так не годится, т.к. исходные массивы должны быть типа double. Т.е. каждый элемент в них - число, а вовсе не пакет из 4-х чисел. Правильно - копировать числа четверками из double-массивов в регистры ymm, а потом использовать параллельную пакетную Ксения(791 знак., 18.10.2016 00:42)
- Ну у тебя-то на входе пакеты! vmovupd и vfmadd231pd работают с пакетами. А иначе есть vmovusd и vfmadd231sd. - fk0(18.10.2016 00:48)
- Так не годится, т.к. исходные массивы должны быть типа double. Т.е. каждый элемент в них - число, а вовсе не пакет из 4-х чисел. Правильно - копировать числа четверками из double-массивов в регистры ymm, а потом использовать параллельную пакетную Ксения(791 знак., 18.10.2016 00:42)
- Смотри: fk0(382 знак., 18.10.2016 00:13)
- Скормила, код получился гадский. Даже если списать качество кода на мое неумение включить там нужную оптимизацию (хотя Yes на вкладке Optimization я выставляла), главным остается все тот же недостаток - считает на коротких регистрах xmm, а более Ксения(270 знак., 17.10.2016 21:40)
- а теперь подобный код скормить родному компилятору от интела?? - Mahagam(17.10.2016 10:00)
- А что, очень даже приличный код. Признаюсь, не ожидала. Странно только, что использует более короткие xmm-регистры вместо вдвое более длинных ymm. Именно это и портит всю малину, снижая скорость вдвое. Причем ymm обязаны быть, если это Haswell, Ксения(560 знак., 17.10.2016 00:53)
- gcc (-mavx2 -march=haswell -mfpmath=sse -O3, gcc=6.2) -- для "упакованных флоатов" в gcc нужно встроенные функции использовать -- тот же ассемблер получается... fk0(795 знак., 16.10.2016 16:53 - 17:47)
- И на каком компиляторе вы предлагаете мне это сделать? (спрашиваю, чтобы потом вы не говорили, что компилятор был дурак) - Ксения(16.10.2016 14:59)
- Высокие приоритеты плохо кончаются, ОС потом свое обратно возьмет, да еще сверху накинет. В итоге латентность получается совсем никакая, для обработки в "реальном" времени лучше их не использовать. - Экспериментатор(13.10.2016 21:55, )
- И, тем не менее, высокий приоритет дает ускорение до 10%. Мне же для сравнения эффективности алгоритмов нужны были точные цифры, тогда как при нормальном приоритете во временах имеет место слишком большой разброс. Ксения(174 знак., 13.10.2016 22:09)
- Чтобы тесты можно было использовать на практике, они должы проходить в одинаковых условиях. Назначая высокий приоритет, Вы нарушаете обычные условия. Более правильно сделать большое количество вычислений, время само усреднится. Кстати, я не Экспериментатор(386 знак., 13.10.2016 23:20, )
- И, тем не менее, высокий приоритет дает ускорение до 10%. Мне же для сравнения эффективности алгоритмов нужны были точные цифры, тогда как при нормальном приоритете во временах имеет место слишком большой разброс. Ксения(174 знак., 13.10.2016 22:09)
- Цитата. Скрипач(151 знак., 13.10.2016 20:28)
- Там эта, правильный учет кэшей может несколько порядков к производительности прибавить. Хотя конечно правильные инструкции легче из асма использовать. - LightElf(13.10.2016 21:16)
- Точнее, совсемнеправильный - сожрать. Разумное приближение, отличающиеся от идеала на единицы процентов, собрать на асме руками - вполне реально. - Скрипач(13.10.2016 21:56)
- Полупустой стакан или полуполный? - LightElf(13.10.2016 22:28)
- 5% - воздуха? Или бургунского? - Скрипач(13.10.2016 22:29)
- Полупустой стакан или полуполный? - LightElf(13.10.2016 22:28)
- Точнее, совсемнеправильный - сожрать. Разумное приближение, отличающиеся от идеала на единицы процентов, собрать на асме руками - вполне реально. - Скрипач(13.10.2016 21:56)
- Нет, аргументы уже привел. - misyachniy(13.10.2016 20:35)
- Спекулятивное выполнение, на "тяжелой математике " практически бесполезно. По крайней мере, в сравнении со специальными наборами команд. - Скрипач(13.10.2016 20:49)
- Сколько проектов у вас используют ассемблер x86 ? - misyachniy(13.10.2016 20:55)
- Скажем, у меня есть ассемблерная библиотека примитивов, которая фактически стала неотъемлемой частью любого моего проекта. Писать ее начала давно, когда SSE и AVX еще не было (по крайней мере, у моего процессора). Подвигло меня к этому понимание Ксения(3260 знак., 13.10.2016 22:51 - 22:58)
Два или три. Один. Скрипач(69 знак., 13.10.2016 20:56 - 20:58)- AVX и AVX2 используете? Программиста на С уволили уже? - misyachniy(13.10.2016 21:02)
- Сколько проектов у вас используют ассемблер x86 ? - misyachniy(13.10.2016 20:55)
- Спекулятивное выполнение, на "тяжелой математике " практически бесполезно. По крайней мере, в сравнении со специальными наборами команд. - Скрипач(13.10.2016 20:49)
- Там эта, правильный учет кэшей может несколько порядков к производительности прибавить. Хотя конечно правильные инструкции легче из асма использовать. - LightElf(13.10.2016 21:16)
- Чего там тасовать? Задача проще выведенного яйца. Вот цикл: Ксения(2368 знак., 13.10.2016 21:32 - 21:39)
- NASM вроде поддерживает какие-то OMF. mut(167 знак., 13.10.2016 15:37 - 16:22, ссылка)
- NASM мой код вообще не компилирует, находя "ошибки" чуть ли не в каждой строчке. Слишком уж отличны требования. Скажем, в MASM метки локальны внутри каждой функции/процедуры, тогда как NASM требует их глобальной уникальности. Ксения(114 знак., 13.10.2016 20:52)
- Плюньте на NASM, раз MASM во всём устраивает и он привычнее. mut(163 знак., 13.10.2016 20:57 - 21:03)
- NASM мой код вообще не компилирует, находя "ошибки" чуть ли не в каждой строчке. Слишком уж отличны требования. Скажем, в MASM метки локальны внутри каждой функции/процедуры, тогда как NASM требует их глобальной уникальности. Ксения(114 знак., 13.10.2016 20:52)
- Вот такой ассемблер есть еще. - LightElf(13.10.2016 13:07, ссылка)
- Беру свои слова обратно. HJWasm - хороший ассемблер. Просто я в взяла на тестирование не самую последнюю версию - 2.12, хотя уже вышла 2.15r2 (01 октября). Последняя уже не только ymm понимает, но и zmm. А это означает, что она годится для Ксения(153 знак., 17.10.2016 01:11 - 01:14)
- Проверила, это похуже будет - на уровне MASM 10.00, не понимает инструкций FMA из AVX2 и требует излишней бюрократизации. Ксения(688 знак., 13.10.2016 20:39)
- Немножко полуофф. Ксения, а Вы не могли бы измерить время супер пи при 1М на Ваших 32битной и 64битной системах? www.superpi.net/Download/ Вот прямо сейчас у меня на 32 битной win7 Intel(R) Core(TM) i3-4370 CPU @ 3.80GHz MSI MS-7816 получилось Экспериментатор(84 знак., 13.10.2016 11:00, )
- Processor: Intel(R) Core(TM) i3-2130 CPU @ 3.40GHz Ксения(373 знак., 14.10.2016 20:47)
- 1M=12.295 (Lenovo W520) Adept(649 знак., 15.10.2016 01:13 - 05:17)
- Да, именно так - все дело в частоте :). Потому-то и купила себе недавно обнову - скромный Core i-3, но на частоту 3.8 ГГц (i3-4170). Т.е. платить деньги за число ядер не выгодно, поскольку использовать их в расчете труднее. Ксения(124 знак., 15.10.2016 02:15 - 02:23)
- в турбо никак не переключаюсь, проц (м.б. ось) сам(а) переключает, в зависимости от загрузки процессора и м.б. температуры. (вроде TurboBoost- технология за это отвечает). Кстати, многоядерность/многопоточность м.б. весьма полезной, т.к. Adept(616 знак., 15.10.2016 02:34 - 04:18)
- Да, именно так - все дело в частоте :). Потому-то и купила себе недавно обнову - скромный Core i-3, но на частоту 3.8 ГГц (i3-4170). Т.е. платить деньги за число ядер не выгодно, поскольку использовать их в расчете труднее. Ксения(124 знак., 15.10.2016 02:15 - 02:23)
- Я примерно такого и ожидал. Возможно, там Вин10 заоптимизирована по питанию, надо в контрольной панели, настройках питания включить максимум перфоманс. На передачу коротких пакетов через ком порт это очень сильно влияет по моим измерениям. Винда Экспериментатор(134 знак., 14.10.2016 21:42, )
- Вообще-то исследование скоростных характеристик ОС скорее интересуют вас, чем меня. Меня же вполне устраивает то, что переход на инструкции AVX/AVX2 учетверяет производительность float-арифметики. А если процесс тормозит операционная система, то Ксения(2012 знак., 15.10.2016 00:34 - 00:43)
- Если добрых дядей не одергивать, то в следующей редакции операционной системы Вы свои фокусы с ассемблером использовать не сможете. Тут уже написали, что на х64 и ARM под вин10 инлайн невозможен. Обязательно попробую, что происходит в защищенном Экспериментатор(443 знак., 15.10.2016 00:56, )
- Но и я тоже считаю, что 64-битная Windows должна работать быстрее 32-битной :). Т.е. в даташите есть тайминги выполнения команд для каждого поколения процессора, и там все в порядке! Т.е. 64-битные инструкции работают так же шустро, как 32-битные, Ксения(834 знак., 15.10.2016 01:42 - 04:01)
- Если добрых дядей не одергивать, то в следующей редакции операционной системы Вы свои фокусы с ассемблером использовать не сможете. Тут уже написали, что на х64 и ARM под вин10 инлайн невозможен. Обязательно попробую, что происходит в защищенном Экспериментатор(443 знак., 15.10.2016 00:56, )
- Вообще-то исследование скоростных характеристик ОС скорее интересуют вас, чем меня. Меня же вполне устраивает то, что переход на инструкции AVX/AVX2 учетверяет производительность float-арифметики. А если процесс тормозит операционная система, то Ксения(2012 знак., 15.10.2016 00:34 - 00:43)
- 1M=12.295 (Lenovo W520) Adept(649 знак., 15.10.2016 01:13 - 05:17)
- У меня 13.276s при 1M. Win7x64 Ale3000(128 знак., 14.10.2016 04:19)
- Не могу - у меня на этой программе система повисла, по кнопке Cancel не останавливается, в Taskmanager выйти не дает. Пришлось по кнопке Reset выходить. Не стану с этим делом больше валандаться. - Ксения(13.10.2016 19:41)
- Это общепринятый в мире тест, почитайте любой обзор. Что-то у Вас не так установлено на компьютере, стоит задуматься. - Экспериментатор(13.10.2016 19:49, )
- Этот общемировой тест за каким-то хреном драйвер в систему без спроса пытается ставить, хулиганит однако :) - mut(13.10.2016 19:52)
- Вы, надеюсь, на левую кнопочку на странице нажали, а не на зеленую? Только что проверил архив вирустотал - ничего нету. - Экспериментатор(13.10.2016 20:01, )
- Вирус в архиве не находится, но при запуске программы идёт попытка установить драйвер ядра cpuz136_x64.sys. А разрешение спросить? - mut(13.10.2016 20:07 - 20:11)
- Судя по названию, это для того, чтобы в отчете написать о параметрах системы, где тестировалось. Всякие оверлокеры на слово не верят друг другу. Короче, у меня под вин7 работает без всяких проблем. - Экспериментатор(13.10.2016 20:12, )
- Они честно об этом написали вот здесь: www.superpi.net/About/ Могу запустить любой похожий тест от Ксении без доступа к сети, это даже полезнее будет. Например, посчитать какую-нибудь большую рекурсию. Важно, чтобы там была только арифметика с Экспериментатор(61 знак., 13.10.2016 20:27, )
- Супер ПИ 32-х битная прога, однопоточная. Скорее всего будет работать в режиме х86. Ее результаты будут не показательны. Tiro(14.10.2016 01:50 - 01:53)
- Они честно об этом написали вот здесь: www.superpi.net/About/ Могу запустить любой похожий тест от Ксении без доступа к сети, это даже полезнее будет. Например, посчитать какую-нибудь большую рекурсию. Важно, чтобы там была только арифметика с Экспериментатор(61 знак., 13.10.2016 20:27, )
- Судя по названию, это для того, чтобы в отчете написать о параметрах системы, где тестировалось. Всякие оверлокеры на слово не верят друг другу. Короче, у меня под вин7 работает без всяких проблем. - Экспериментатор(13.10.2016 20:12, )
- Вирус в архиве не находится, но при запуске программы идёт попытка установить драйвер ядра cpuz136_x64.sys. А разрешение спросить? - mut(13.10.2016 20:07 - 20:11)
- Вы, надеюсь, на левую кнопочку на странице нажали, а не на зеленую? Только что проверил архив вирустотал - ничего нету. - Экспериментатор(13.10.2016 20:01, )
- Этот общемировой тест за каким-то хреном драйвер в систему без спроса пытается ставить, хулиганит однако :) - mut(13.10.2016 19:52)
- Это общепринятый в мире тест, почитайте любой обзор. Что-то у Вас не так установлено на компьютере, стоит задуматься. - Экспериментатор(13.10.2016 19:49, )
- Processor: Intel(R) Core(TM) i3-2130 CPU @ 3.40GHz Ксения(373 знак., 14.10.2016 20:47)
- Заинтересовала. Делитесь. - teap0t(13.10.2016 09:58)
- Ну, уже говорили -> А по поводу выкладывать или нет, то я для себя пришёл к такому выводу: Выкладывать, коли нечего прятать. Dingo(216 знак., 13.10.2016 06:05, ссылка)