Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
[quot MBo]AR®Может быть, есть алгоритмические пути оптимизации? Мне они не известны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2018, 19:25 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
ИзопропилЗачем нужен MMX регистр в x64? В x86. Было бы в x64, не было бы разговора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2018, 19:26 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
В общем, вести с полей малоутешительны: "чистый" C++ - 20 секунд тело цикла на асм-вставке - 30 секунд intrinsics-функции - 50 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 12:46 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Опиши реальную задачу + показывай код ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 13:46 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®ИзопропилЗачем нужен MMX регистр в x64? В x86. Было бы в x64, не было бы разговора. Исторически первыми появились FPU регистры. А они нужны оуенно. Об этом скажет всякий кто уважает AutoCad. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 13:48 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevОпиши реальную задачу + показывай код ))) Не буду. Задачу должен решить я. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 14:28 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Мне они не известны. Вероятнее всего это из-за узости твоего кругозора. Потому и говорят тебе чтобы опубликовал задачу. У коллективного-то разума кругозор поширше будет. AR®В x86. Было бы в x64, не было бы разговора. А в чём проблема собрать под 64 бита? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 14:42 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА в чём проблема собрать под 64 бита? В имеющихся студии и процессоре в компе. ) Ну и в желании иметь результат, совместимый со старым оборудованием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 14:58 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Leonid KudryavtsevОпиши реальную задачу + показывай код ))) Не буду. Задачу должен решить я. ) Ты хитрый и лукавый. Не будет тебе респекта. Давай сорцы! Ставлю коньяк что тебе ассемблер не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 20:07 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
mayton Ставлю коньяк что тебе ассемблер не нужен. Я таки выписал свой алгоритм на ассемблерной вставке на 32 битах без использования регистров MMX. Результат опять-таки малоутешителен: 37 секунд при прочих равных условиях. Т.е. хуже, чем с MMX и хуже чем то, что сделал компилятор C++. Куда за коньяком-то? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 21:42 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Вообще, насколько можно верить тому .asm, который остаётся рядом с .obj, если в свойствах проекта задать Assembly Output = "Assembly With Source Code (/FAs)"? В смысле верить, что то, что там написано и будет в .exe ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 21:52 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Вообще, насколько можно верить тому .asm, который остаётся рядом с .obj, если в свойствах проекта задать Assembly Output = "Assembly With Source Code (/FAs)"? В смысле верить, что то, что там написано и будет в .exe ? Можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 21:59 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®, А пруфы где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 22:06 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®, Если компилятор породил код лучше - значит есть к чему стремиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 22:07 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Без сорцов - никакого коньяка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 22:10 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Dimitry SibiryakovА в чём проблема собрать под 64 бита? В имеющихся студии и процессоре в компе. ) Ну и в желании иметь результат, совместимый со старым оборудованием. Однако выше... AR®Но мне ещё важна совместимость с разными компами, некоторые из них довольно старые, хотя SSE 4 есть уже на всех проверенных. Мне не критично использование именно MMX, а нужна быстрая 64-битная арифметика (сложение-вычитание, сдвиги, and-or-xor). Кажется, во всех процессорах, в которых есть SSE4, есть и поддержка 64 бит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 12:07 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
BarloneКажется, во всех процессорах, в которых есть SSE4, есть и поддержка 64 бит.банально 32-битная винда, из-за принтера, например, старого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 12:23 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
BarloneКажется, во всех процессорах, в которых есть SSE4, есть и поддержка 64 бит. Вот интересно, позволяет ли какая-нибудь студия скомпилировать 32-битное приложение, но в asm-вставках обращаться к регистрам R8-R15 (64-битным )? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 16:33 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR® Вот интересно, позволяет ли какая-нибудь студия скомпилировать 32-битное приложение, но в asm-вставках обращаться к регистрам R8-R15 (64-битным )? большинство команд к регистрам преобрауется в один и тот же код, что в 32-битном, что 64 битном коде. Например, xor RAX,RAX и xor EAX,EAX даёт один и тот же бинарный код для своей разрядности. Просто в одном случае они интерпретируются как 32-битные, а в другом как 64-битные в 64-битном коде обращение к 32-битным регистрам добавляет префиксы смены разряда перед командой,обратно насколько мне известно такого префикса нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 17:16 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®BarloneКажется, во всех процессорах, в которых есть SSE4, есть и поддержка 64 бит. Вот интересно, позволяет ли какая-нибудь студия скомпилировать 32-битное приложение, но в asm-вставках обращаться к регистрам R8-R15 (64-битным )? Нет. И дело не в студии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 22:45 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
ИзопропилИ дело не в студии 32-битное приложение устанавливает режим процессора, делающий недоступными дополнительные регистры? А вообще склоняюсь к мысли о безнадёжности темы. В Intel'овском "Introduction to x64 Assembly.pdf" сказано "although it is difficult to outperform a good C++ compiler for most programmers". Похоже, MS Visual Studio имеет вполне себе a good C++ compiler. Вчера вечером сделал новую версию с асм-вставкой (без MMX), в которой минимизировал количество JMP'ов всех видов, но результат ещё хуже - 45 секунд вместо 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 10:03 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Похоже, MS Visual Studio имеет вполне себе a good C++ compiler. Интеловский еще лучше, тут замеряли 18108708 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 10:06 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®32-битное приложение устанавливает режим процессора, делающий недоступными дополнительные регистры? да AR®В Intel'овском "Introduction to x64 Assembly.pdf" сказано "although it is difficult to outperform a good C++ compiler for most programmers". AR®Вчера вечером сделал новую версию с асм-вставкой (без MMX), в которой минимизировал количество JMP'ов всех видов, но результат ещё хуже - 45 секунд вместо 37. код покажи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 10:33 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Кроме кол-ва Jump'ов они должы быть еще и "правильные". Дабы с Intel Pentium существуют достаточно простые правила для оптимизатора переходов. Т.ч. например условный jump с переходом наверх по коду и условный jump с переходом далее по коду - для процессора очень сильно отличаются. AFAIK JMP'ы для современных процессоров уже не проблема. Тут скорее важнее, что бы арифметические операции между собой по операндам были не связаны и пенальти не получать. AFAIK Ну и опять таки, нужно понимать, а под какой конкретно процессор ты собираешься оптимизировать. Первый Pentium от современных - все же очень сильно отличается. IMHO & AFAIK собираешься оптимизировать Intel VTune иметь на компьютере обязательно. А уж дальше, читать про пенальти которые он тебе выдаст. Ну или выучивать пару томов Intel'овской документации с правилами оптимизаци под твой процессор p.s. На первых пентиумах и Pentium II, у меня в коде все время пенальти по частичному обращению к памяти лезли /обращение к байту, когда до этого по адресу записывали слово/. Банальный цикл преобразующий RGB <--> RGBA работал медленнее, чем декомпрессия JPEG'а ))) из оптимизированной Intel'ом библиотеки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 11:46 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Разоблачение чёрной магии. Не спрашивайте про постановку задачи целиком. Она большая и скучная. Важна суть, а не постановка, а она - ниже. Есть функция: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Вот что сделал компилятор: Код: plaintext 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. Контрольный пример: f(4294967337, 8589934591) = 1. Это числа длиной 33 бита. Требуется версия на ассемблере, работающая быстрее, чем скомпилированная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39654554&tid=1340094]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 307ms |

| 0 / 0 |
