|
|
|
float и int
|
|||
|---|---|---|---|
|
#18+
Вопрос не совсем в тему, но на сколько float и double медленней инта работает? Сколько тактов на эти операции уходит. В смысле умножение, сложение, деление вычитание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 10:56:05 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
BelevernВопрос не совсем в тему, но на сколько float и double медленней инта работает? Сколько тактов на эти операции уходит. В смысле умножение, сложение, деление вычитание. Вообще afair это пресильно зависит от конкретной марки cpu. легче взять и замерить с использованием ОбобщенногоПрограммирования. Ну или рыскать по amd.com/intel.com в поисках нужных док ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:12:41 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Maykie, думаю там не сильно Pentium 4 от AMD отличаются. на MOV 2 такта, эт я знаю. А вот на MUL, SUB и т.п. это хз... Ищу знающих людей. Вопрос в том нужно ли мне использовать float/double или int на 1000 делить всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:15:09 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
MaykieBelevernВопрос не совсем в тему, но на сколько float и double медленней инта работает? Сколько тактов на эти операции уходит. В смысле умножение, сложение, деление вычитание.Вообще afair это пресильно зависит от конкретной марки cpu.И очень сильно зависит от последовательности действий, попадания в кэши и т.п. Т.е. от вещей, не связанных напрямую с типом данных. Имхо, если интересует точный результат, то нужно проверять на конкретном алогритме. Если интересует приблизительный, то - одинаково. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:16:12 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
BelevernMaykie, думаю там не сильно Pentium 4 от AMD отличаются. на MOV 2 такта, эт я знаю. А вот на MUL, SUB и т.п. это хз... Ищу знающих людей. Вопрос в том нужно ли мне использовать float/double или int на 1000 делить всегда. сама операция деления выполняется в 10 раз дольше, чем операция умножения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:19:57 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
про геррсама операция деления выполняется в 10 раз дольше, чем операция умножения.Вы уточняйте для какого процессора и в каких условиях. Т.к. в общем случае это неверно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:22:00 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
miksoftпро геррсама операция деления выполняется в 10 раз дольше, чем операция умножения.Вы уточняйте для какого процессора и в каких условиях. Т.к. в общем случае это неверно. без разницы. в двоичной арифметике нет деления, есть сложение, умножение, сдвиг. операция деления - комбинация сложений и сдвигов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:27:57 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
про геррбез разницы. в двоичной арифметике нет деления, есть сложение, умножение, сдвиг. операция деления - комбинация сложений и сдвигов.и как из этого следует число 10? или даже вообще отличие времени выполнения деления от времени выполнения умножения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:38:06 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Belevern на MOV 2 такта, эт я знаю. А вот на MUL, SUB и т.п. это хз... Ищу знающих людей. Вопрос в том нужно ли мне использовать float/double или int на 1000 делить всегда. MOV выполняется за один такт. И возможно, что за один такт выполнится параллельно 3 команды. FLOAT и DOUBLE должны выполняться примерно одинакокое время, потому что команда умножения одна. Различные команды копирования между регистром и памятью (32, 64, 80-бит и т.п.) http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/33425.pdf Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:45:35 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
miksoftпро геррбез разницы. в двоичной арифметике нет деления, есть сложение, умножение, сдвиг. операция деления - комбинация сложений и сдвигов.и как из этого следует число 10? или даже вообще отличие времени выполнения деления от времени выполнения умножения? бес попутал (насчет числа 10) немного о другой архитектуре думал, в ней в частности оп-я умножения делается за 2 такта (сложение + сдвиг) а деление за 20 тактов. Не думаю что координально что то меняется из за архитектуры. Модератор: Тема перенесена из форума "C++". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 11:49:02 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
"Алексей Морозов" <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:6570738@sql.ru... Автор: Алексей Морозов xhttp://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/33425.pdf Не ту ссылку дал. Время выполнения команд процессора для AMD приведено где то тут: http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739_7203,00.html Но мне проще проверить это командой RDTSC Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 13:18:51 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Алексей МорозовНо мне проще проверить это командой RDTSCА попробуйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 13:26:06 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
BelevernВопрос не совсем в тему, но на сколько float и double медленней инта работает? Сколько тактов на эти операции уходит. В смысле умножение, сложение, деление вычитание. Сравнивать такты операций - неинтересно. Ведь производительность алгоритма будет зависеть не только от этих цифр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 15:53:02 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Алексей МорозовНо мне проще проверить это командой RDTSCУгу... Время выполнения команды в тактах не считают (если мне не изменяет память) со времен P II, т.к. изобретение Форда оказалось востребованным и в процессорах. Сейчас информация о скорости выполнения приводится в количестве микроопераций. 2 Belevern: Опишите задачу подробнее; возможно, оптимальным по производительности/точности будет использование потоковых SIMD-расширений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 16:25:49 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Деление двух чисел до 1000: INT - за 40 тактов. DOUBLE - за 2 такта. FLOAT - за 1 такт. Так компилятор делит int: Код: plaintext 1. 2. 3. 4. 5. Так компилятор делит double: Код: plaintext 1. 2. 3. 4. Так я проверяю скорость: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 17:31:49 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Так я проверяю скорость: Код: plaintext 1. 2. 3. 4. 5. 6. Может стоит три массива завести и заполнить rand'ом ДО цикла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 19:07:53 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
про геррсама операция деления выполняется в 10 раз дольше, чем операция умножения. пусть делит на 1024:)) тогда быстрее будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 19:26:27 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
АнатоЛойМожет стоит три массива завести и заполнить rand'ом ДО цикла? Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 19:41:30 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Алексей МорозовАнатоЛойМожет стоит три массива завести и заполнить rand'ом ДО цикла? Зачем? Виноват. Привычка. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 21:56:45 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Алексей МорозовДеление двух чисел до 1000: INT - за 40 тактов. DOUBLE - за 2 такта. FLOAT - за 1 такт. Какой у Вас проц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 12:56:42 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Quartz Какой у Вас проц? AMD Athlon 64 X2. Я еще раз перепровирил на программе ниже , и получилось 3 такта. Попробовал увеличить числа до 100000, получилось 4 такта. Разместил 5 последовательностей команд (-fld-fdiv-fstp-), получилось 5x4 такта. Выходит, что DOUBLE быстрее чем INT в 10 раз. Код: plaintext 1. 2. 3. 4. 5. 6. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 13:41:01 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Попробовал для целых чисел очистить конвеер процессора 64-мя NOP-ами перед командами деления, результат тот же. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 14:36:39 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
Алексей МорозовПопробовал для целых чисел очистить конвеер процессора 64-мя NOP-амиЧистить надо не NOP-ами, а условными переходами с невозможностью предсказания. Обычные NOP-ы, насколько я в курсе, давно игнорируются. Да и вообще эти эксперименты, имхо, бессмыслены. Ибо в реальной ситуации другие факторы могут оказать большее влияние на время выполнения, нежели разница между float и int. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 14:50:09 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
А компилятор? :). Просто сильно удивило отставание целочисленного блока аж на порядок. У меня в (VS 2008, Core 2 Duo) получились примерно равные результаты c int и double. Если написать последовательность команд (аналог Вашего последнего примера), то целочисленные вычисления ожидаемо опережают по скорости FPU. PS: Есть стойкое ощущение, что такого рода тесты слишком... синтетические, что ли. Все же логика работы современных "камней" весьма сложна, и, повторюсь, замер скорости отдельной операции вряд ли даст представление об общей скорости выполнения кода. PPS: Завтра попробую дома на X2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 14:56:51 |
|
||
|
float и int
|
|||
|---|---|---|---|
|
#18+
miksoftДа и вообще эти эксперименты, имхо, бессмыслены. Ибо в реальной ситуации другие факторы могут оказать большее влияние на время выполнения, нежели разница между float и int. +1 Этот тест - вообще не показательный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 16:04:27 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35715347&tid=1344770]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
229ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 529ms |

| 0 / 0 |
