Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Time = 14673 как-то дофига блин там 8589934591 итераций цикла. Еще там другой прикол компилятора есть в x32: нельзя писать f(4294967337, 8589934591), он магические числа в код вставляет 21477188 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 09:25 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Aleksandr Sharahovзанафига все это, если есть теория ) Теорий много. Все теории стоят одна другой ©. )) Конкретно по тому, что ты делаешь, есть довольно развитая теория. Но ссылок не дам, т.к. "Задачу должен решить ты" (с). AR®Спасибо за примеры кода. Будет времечко, изучу. Что там изучать, просто используй, ибо: a) Delphi+BASM=страшная сила, б) хороший компилятор не заменяет мозг. AR®Пара заметок: 1) корректно приводить время работы не просто для модели процессора, но с указанием его тактовой частоты Начать надо сам знаешь с кого. Частоты легко гуглятся, если чё. AR®2) по ходу экспериментов я наступал как на "ложное срабатывание", так и на "ложное несрабатывание" своих асм-версий функции. Поэтому вот более серьёзный тест: все числа от 4294967297 до 4294967550 в качестве 1-го аргумента функции, второй аргумент прежний - 8589934591. Весь цикл (254 шага) не займёт больше 20 минут. Должно быть ровно 20 случаев f()==1. Если не 20, то в алгоритме ошибка. А вот это проверим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 09:35 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Dima TЕще там другой прикол компилятора есть в x32: нельзя писать f(4294967337, 8589934591), он магические числа в код вставляет Я для теста передаю их как аргументы командной строки консольного приложеньица, зовущего f(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 09:47 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
maytonНебольшой флешбек. Знаешь ты всё таки заслужил коньяк. Полагаю, что не заслужил. Ибо конкретно у меня пока быстрее C++ не получилось. Работаем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 09:55 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Как будет угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 10:02 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Поэтому вот более серьёзный тест: все числа от 4294967297 до 4294967550 в качестве 1-го аргумента функции, второй аргумент прежний - 8589934591. Весь цикл (254 шага) не займёт больше 20 минут. Должно быть ровно 20 случаев f()==1. Если не 20, то в алгоритме ошибка. алгоритм 21477774 на i5-2300 проверку прошел, затратив 995.5 сек тест с 4294967297 на i5-2300 проходится за 15.99 сек частота i5-2300 плавает от 2.8 до 3.1, считаем 3.1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 10:18 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Версия на С++: на i3-2120 @3.3 ГГц вышеописанный цикл из 254 шагов делается за 800..845 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 10:30 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®, значит, считаем 2.8 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 10:57 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
алгоритм 21477774 на i5-3470 (3.2 GHz) проверку прошел, затратив 758.7 сек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:34 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Выяснил, что работу существенно тормозят ассемблерные команды сравнения вида cmp ecx, <что-нибудь> если в них стоит регистр не ecx и не edx. Полагаю, бывалым ассемблерщикам эта ситуация ясна, но мне как новичку - нет. Так и должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 12:59 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Выяснил, что работу существенно тормозят ассемблерные команды сравнения вида cmp ecx, <что-нибудь> если в них стоит регистр не ecx и не edx. Полагаю, бывалым ассемблерщикам эта ситуация ясна, но мне как новичку - нет. Так и должно быть? так не должно быть, сейчас должно быть пофигу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 13:03 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
"Команды" нынче вообще НЕ тормозят. Нет такого понятия. Есть конвееры, есть throughtinput, есть latency, есть пенальти (например зависимость от пред. значений, неверное предсказание перехода) Более того, есть даже Zero Time Instruction (или как-то так, т.е. иструкции выполняемые за 0 тактов прямо декодером команд). AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 13:14 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
В каком смысле сейчас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 13:14 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®В каком смысле сейчас? в смысле на твоем процессоре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 13:33 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
В моём процессоре оно, к сожалению, есть. Причём не имеет значения, что будет 2-м аргументом CMP - память, константа, другой регистр. Требовать замены проца? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 13:55 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®В моём процессоре оно, к сожалению, есть. Причём не имеет значения, что будет 2-м аргументом CMP - память, константа, другой регистр. Требовать замены проца? )) ... или попробовать переименовать регистры в программе. Что-то другое влияет и подставляет регистры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 14:01 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Что же это за процессор такой ? ))) Дело не в регистре, важно что с этим регистром происходило до этого. IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 14:17 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 14:17 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Если собираетесь разбираться в производительности, ставьте Intel VTune (коммерческая цена от 800$) он Вам и покажет, какие пенальти возникают и пр. А так, это гадание на кофейной гуще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 14:19 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
SiemarglВремя на прогон от 4294967297 до 4294967550 169сек Это была реклама китайского i7-3770@4GHz И получено 20 раз f()=1 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 14:24 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Коллеги. У меня предложение. Абсолютные цифры в секундах что вы постите - неинформативны для других железяк. Предлагаю взять за 100% первый вариант автора и если вы сделали удачную оптимизацию - укажите секунды и проценты ускорения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 14:50 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Еще бы хорошо компилятор указывать. У меня QT ((( у него формат inline ассемблера совсем для меня не привычный ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 14:58 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЕсли собираетесь разбираться в производительности, ставьте Intel VTune (коммерческая цена от 800$) он Вам и покажет, какие пенальти возникают и пр. А так, это гадание на кофейной гуще Лирическое отступление: ваши слова, между прочим, неплохо иллюстрируют суть англосаксонской цивилизации: вещью владеешь, но полноценно воспользоваться ей просто так не сможешь, а только заплатив дополнительно. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 15:04 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЕсли собираетесь разбираться в производительности, ставьте Intel VTune (коммерческая цена от 800$) он Вам и покажет, какие пенальти возникают и пр. А так, это гадание на кофейной гуще Это подлинная магия, тасование инструкции ассемблера круче гадания на картах ) maytonКоллеги. У меня предложение. Абсолютные цифры в секундах что вы постите - неинформативны для других железяк. Предлагаю взять за 100% первый вариант автора и если вы сделали удачную оптимизацию - укажите секунды и проценты ускорения. А нету как такового вариант автора. Предлагаю автору запостить *полный* *ассемблерный* листинг тестируемой функции. Я пока остановился на таком варианте 1) 14.617 сек (i5-2300@2.8) 11.809 сек (i5-3470@3.2) 20) 910.780 сек (i5-2300@2.8) 727.574 сек (i5-3470@3.2) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 15:15 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevДело не в регистре, важно что с этим регистром происходило до этого. Вы оказались абсолютно правы. Поигрался с "кадровыми перестановками" и выяснил: "долго" сравниваются cmp регистры, участвовавшие в shrd и shr, а "быстро" - участвовавшие только в add / adc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 15:33 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39658417&tid=1340094]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 419ms |

| 0 / 0 |
