Member
Статус: Не в сети Регистрация: 30.01.2003 Откуда: Москва
Locki В любом случае лучше делать цикл, меньше погрешность. RDTSC само по себе много жрет в процессе своего выполнения (десятки тактов). Отсюда и погрешность.
Member
Статус: Не в сети Регистрация: 28.02.2005 Откуда: Брянск
Locki Ну тут ты немного не прав:
1. 84 такта на 1 инстр. Тут ты не учел что RDTSC тоже нужно время на выполнение (на моем пне это около 96-104 тактов + поместить значения регистров в переменные), так что эти 96-104 или твои 84 такта надо вычитать а потом уж делить.
2. Опять же на моем 16/32/64 Адд выполняются за 96/112/144 тактов (сам Адд занимает по-моему около 6 тактов, на Атлоне наверное все 4) - как тогда обяснить эти 96/112/144 такта, если одни только Адд выполнялись бы около 96(!)/192/384 тактов. Тут я уже незнаю чем крыть (я сам очень удивился). Можно вспомнить что складывать можно сразу на 3 блоках, но тут код с кот зависит от результатов предидущей операции. В голову лезет мысль что этот гад понимает чего от него хотят - типа: "Ага, ЕДХ=ЕДХ+ЕАХ*8/16/32/..." - А может ли он об этом догадаться? Кстати это по моему единственный вариант при котором можно выполнить 64 Адд с такой скоростью. На Атлоне это ещё как-нибудь можно списать на параллельное исполнение, но на пне наврядли, тут что-то другое.
3. Ну во-первых есть документация на процы, где написано скока проц тратит на инструкцию.
3.1. Инструкции выполняются вместе с другими инструкциями, и от их окружения зависит время выполнения (спаривание инструкций). Плюс есть всякие извраты типа LEA EDX, EAX+EDX = ADD EDX,EAX, вот. Можно сразу два сложения как положено, и одно с извратом, зато все выполнятся параллельно.
З.Ы. Тут надо эксперементировать, а искать конкретные цифры бесполезно, т.к. с новым камнем все может радикально поменяться. И тогда будут орать "На CPU1 это быстро, а на CPU1version2 это почему-то медленно! Хотя он новее, мощнее, быстрее, умнее ...".
Добавлено спустя 6 минут, 42 секунды: Root Есть этот Тюнер (7.1), тока добиться от него тактов мне не удается, одни вопросы - никаких ответов. Слишко он заумный для меня (вроде 5 был попроще), может вы знаете куда в нем нажать чтоб такты выскочили?
Member
Статус: Не в сети Регистрация: 31.01.2004 Откуда: moskow
Asteroid а если делать цикл, то добавляются еще такты, тратящиеся на команды цикла. вот и если тело малое, а размер цикла большой то все ОПЯТЬ ПРИЕХАЛИ!
Toad Тут пришла такая мысль, а что если поставить сначала неспариваемую инструкцию
напр CLC , потом допустим 8 раз NOP, потом 32 раз ADD и CPUID (она не выполняется пока процессор не доделает предыдущее. потом замерить результат вычесть из него 1такт-CLC, 8тактов -NOP, 1 такт-СPUID и поделить на 32. Как вам сей вариант?
Member
Статус: Не в сети Регистрация: 30.01.2003 Откуда: Москва
Locki Опять-таки вопрос окружения. NOP может выполняться не один такт Не понимаю, чем тебе цикл не понравился...связка DEC ECX; JNZ одна из лучших и может даже спорить с LOOP...
Углубился в залежи всяких разных исходников. Изредка слышны щелчки мышью и перелистывание страниц кода.
Member
Статус: Не в сети Регистрация: 28.02.2005 Откуда: Брянск
Asteroid Но иногда Луп быстрее (правда редко и всего на 2-4 такта).
Locki Всеравно скока не меряй найдется процессор на котором твой код будет дико тормозить/нестись, и показывать результаты из раздела фантастики. Кончай замерять инструкции - меряй целые ф-ции. Это раньше про инструкцию можно было сказать спариваемая она или нет, а теперь при таком ассортименте процессоров хрен проймешь что у них там вместо мозгов.
Member
Статус: Не в сети Регистрация: 31.01.2004 Откуда: moskow
Цитата:
Кончай замерять инструкции - меряй целые ф-ции. Это раньше про инструкцию можно было сказать спариваемая она или нет, а теперь при таком ассортименте процессоров хрен проймешь что у них там вместо мозгов.
= Блин, ПОЛНОСТЬЮ СОГЛАСЕН! Хотелось сделать как лучше, а получается... вопрос Через какое время произойдет переполнение eax? Я так понимаю 2^32/(частота проца в герцах)= кол-во секунд?
Добавлено спустя 4 минуты, 27 секунд: Блин,
Цитата:
мечтательно
где бы достать мануалы на процессоры, ДА НА РУССКОМ!!!
Member
Статус: Не в сети Регистрация: 28.02.2005 Откуда: Брянск
Asteroid Во-Во.
Locki Ты что совсем по ихнему не шпрехаешь? Там в принципе ничего военного нет, а реккомендации одни и те же. И насчет формулы ты прав. Но что это за функция кот. 1 секунды маловато на выполнение (а что тебе не дает покоя в этом деле?).
Member
Статус: Не в сети Регистрация: 28.02.2005 Откуда: Брянск
Locki Я работал. На что те ссылку нада, на ВТюнер что-ль (ftp://download.inet.com/software/products/vtune/downloads)? Кстати он платный и т.д. и т.п. Может заметил, немного раньше я писал что от него тактов мне добиться не удалось, и в принципе вощбще нихоена в нем не понял (у меня 7.1, я читал про 5й там всё проще было)!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения