Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Barlone, clang понравился: -без фрейма, -догадался насчет декремента, -заменил работу с маской -1 на условную пересылку, -все сравнения or-ами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2018, 14:14 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®...И 33-й - это только начало и почва для отладки... Т.е. процедура должна работать и на 34 бита? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2018, 14:17 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2018, 14:43 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovТ.е. процедура должна работать и на 34 бита? И на 34, и на 35..64. 32-битная версия удовлетворительно работала на C#. Переход к 64-битной арифметике вынудил вспомнить про C и написание dll. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2018, 14:58 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)AR®, как то жёстко 21481207 , на i7 42 секунды по сравнению с 14.8 на плюсах Закомментируйте часть с метки test_d: до метки test_c:, на Вашем i7 будет секунд 10-12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2018, 15:00 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®, попробуй вот этот вариант как Код: 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. 56. 57. 58. 59. 60. 61. 62. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2018, 18:40 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)AR®, попробуй вот этот вариант Попробовал, но только, к сожалению, на другом компе: С++ - 30 сек., мой асм - 80 сек., Ваш - 53 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2018, 19:51 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®, нет в мире таких крепостей, которые не взять за 529 секунд на i7-7700, используя Delphi+BASM Код: 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. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 00:43 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
чего то пока далековато до моих 160-180с, которые достигаются одной строчкой =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 02:31 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
то ли еще будет ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 07:26 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Сравнение состояния по частям дает 470.5 sec на i7-7700 Код: 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. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 10:42 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
529 с, 160-180 с - в обоих случаях речь идёт про тест, где 254 числа и из них 20 f()==1 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 10:49 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahovто ли еще будет ) А Делфи позволяют посмотреть, во что ассемблерное превратил компилятор ассемблер в исходнике? В MS VC бывают незначительные отличия типа je вместо jz и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 11:49 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®je вместо jz Это разные мнемоники одной и той же машиной команды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 12:06 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®529 с, 160-180 с - в обоих случаях речь идёт про тест, где 254 числа и из них 20 f()==1 ? У меня все по-честному, без параллелей. Кстати простыню можно немного сократить. И второй цикл лучше выравнивать, если компилятор позволяет, - будет еще быстрее (477 сек). Код: 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. 60. 61. 62. 63. 64. 65. 66. 67. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 12:38 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, опечатка: не 477, а 447 сек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 12:46 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov Хотел потестить Ваши примеры, но, похоже, в C++ нельзя использовать ebp для собственных нужд. Компилируется с warning'ами, а при запуске падает на первом mov ebp. Есть более фундаментальный вопрос: откуда уверенность, что initial state обязательно повторится? У Вас его повторение является единственным условием выхода из цикла, а в исходном алгоритме ещё и достижение предела счётчиком цикла. Возможно, повторение initial state неизбежно, но я не знаю, так ли это. Вы, возможно знаете теорию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 19:45 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Хотел потестить Ваши примеры, но, похоже, в C++ нельзя использовать ebp для собственных нужд. Компилируется с warning'ами, а при запуске падает на первом mov ebp. В последних функциях регистр edi не используется. Замените. AR®Есть более фундаментальный вопрос: откуда уверенность, что initial state обязательно повторится? У Вас его повторение является единственным условием выхода из цикла, а в исходном алгоритме ещё и достижение предела счётчиком цикла. Возможно, повторение initial state неизбежно, но я не знаю, так ли это. Вы, возможно знаете теорию. Вы бы не задавали этот вопрос, если бы грызли гранит до основания, а не чисто периодически ) Но, как мы помним, эту "Задачу должен решить я" (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 20:42 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Увы. Для 32 бит всё уже успешно проделано. И 33-й - это только начало и почва для отладки. Нет ли идей, что у меня ломает конвейер? Идей нет. Конвейер команд ломают условные переходы. Но в нашем случае 99% переходов - назад. Как определить состояние конвейера в нашем случае - ХЗ. У меня нет мыслей. Самое правильное - это воспользоваться утилитой тонкого тюнинга Intel Vtune и посмотреть ее отчоты. Я по ссылкам от этого топика пошёл читать про PAPI. Не думаю что выйду с предложением. Тут Шарахов тебе хорошо помогает. А я уже свои мысли сказал. Если-б я делал эту функцию - то использовал-бы мемоизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 20:52 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovВы бы не задавали этот вопрос, если бы грызли гранит до основания, а не чисто периодически ) Э-э, я-то делаю это скорее даже а периодически. )) Aleksandr SharahovНо, как мы помним, эту "Задачу должен решить я" (с). И решу, не сумневайтесь. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 21:14 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Aleksandr SharahovВы бы не задавали этот вопрос, если бы грызли гранит до основания, а не чисто периодически ) Э-э, я-то делаю это скорее даже а периодически. )) Главное, все читать внимательно, чтоб случайно не пропустить идею какую или подсказку ) AR®Aleksandr SharahovНо, как мы помним, эту "Задачу должен решить я" (с). И решу, не сумневайтесь. ) Подкину еще дровишек (191 сек на i7-7700). Решать - не перерешать ) Код: 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. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. Написано неоптимально, просто демонстрация идеи. Алгоритм каждой из процедур можно улучшить + использовать ассемблер. Еще больше оптимизаций можно подсмотреть здесь: http://guildalfa.ru/alsha/node/2 http://guildalfa.ru/alsha/node/4 http://guildalfa.ru/alsha/node/10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 22:37 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Aleksandr Sharahov Хотел потестить Ваши примеры, но, похоже, в C++ нельзя использовать ebp для собственных нужд. Компилируется с warning'ами, а при запуске падает на первом mov ebp. Есть более фундаментальный вопрос: откуда уверенность, что initial state обязательно повторится? У Вас его повторение является единственным условием выхода из цикла, а в исходном алгоритме ещё и достижение предела счётчиком цикла. Возможно, повторение initial state неизбежно, но я не знаю, так ли это. Вы, возможно знаете теорию. если грубо перевести Код: 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. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 23:34 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®, вот только я что-то не вижу где у него счётчик проверяется, вижу что меняется, а что каждый раз проверяется - нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2018, 00:03 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)AR®, вот только я что-то не вижу где у него счётчик проверяется, вижу что меняется, а что каждый раз проверяется - нет Именно. Не проверяется вовсе. Только 1 раз в конце при принятии решения о возвращаемом значении. Выше было по этому поводу: Aleksandr SharahovAR®Есть более фундаментальный вопрос: откуда уверенность, что initial state обязательно повторится? У Вас его повторение является единственным условием выхода из цикла, а в исходном алгоритме ещё и достижение предела счётчиком цикла. Возможно, повторение initial state неизбежно, но я не знаю, так ли это. Вы, возможно знаете теорию. Вы бы не задавали этот вопрос, если бы грызли гранит до основания, а не чисто периодически ) Но, как мы помним, эту "Задачу должен решить я" (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2018, 00:16 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®, как движется изучение? Сейчас проверил, таблица на 2K значений, как в статье по CRC32, позволяет прогнать длинный тест менее, чем за 66 сек. Чистый паскаль, без других оптимизаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2018, 01:20 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39659214&tid=1340094]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 283ms |
| total: | 550ms |

| 0 / 0 |
