Какие команды нагревают CPU?

Тема в разделе "WASM.A&O", создана пользователем locki, 19 июл 2005.

  1. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    Какими командами можно максимально разогреть процессор,

    как задействовать максимальное кол-во конвейров процессора, какими командами, напишите примерный код.
     
  2. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    А попробовать? Логично предположить что надо задействовать макс. кол-во блоков. Доку в зубы+эксперементы и вперед. Логично, что нужно нагрузить оба алу, векторный блок, умножения и store\load(тока чтоб они не тормозили ожидая память). А еще можно найти бюрнер и дизасмить =)
     
  3. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    fdiv. Еще попробуй в Калькуляторе (calc.exe) число 1.111 возводить в 3 степень мнократно (пока одно возведение не будет занимать 1 минуту) - отличное нагревание.
     
  4. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    -тут надо спаривающиеся команды? Я правильно понимаю?
     
  5. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Насчет разогрева не в курсе, конвеер там один, можно задействовать максимальное кол-во исполнительных блоков, но для PIII больше 3-х мопов за такт не получится! (для других скорее тоже есть ограничение на пропускную способность конвеера) Если код под винду, например так: первый вариант задействует только 5 устройств за 2 такта, второй 6 (3 мопа\такт), вообще интересный вопрос
    Код (Text):
    1. ;==============================================
    2. repeat 1000
    3.             push    eax              ; p0\3\4
    4.             pop     eax              ; p1\2
    5. end repeat
    6. ;==============================================
    7.             mov     ecx,-1000
    8. align 16
    9. @@:         mov     eax,[esp+ecx*4]  ; p2
    10.             mov     eax,[esp+ecx*4]  ; p2
    11.             mov     [esp+ecx*4],eax  ; p3\4
    12.             inc     ecx              ; p0
    13.             jnz     @B               ; p1
    14. ;==============================================
     
  6. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Нужно выполнять имхо тяжелые векторные комманды, типа умножение/деление/возведение в степень и т.д. Обращения к память можно практически исключить (хотя кеш-память занимает большую часть кристалла, она едва-ли имеет высокий TDP).
     
  7. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    alpet Ну незнаю, незнаю ... Допустим взять деление в цикле или тяжелые CPUID, RDTSC. Мне кажется конвеер закинул один "тяжелый" моп в алу и простаивает пока он х.з. сколько тактов там выполнится (и декодер будет простаивать пока предыдущие мопы не отработают), чтобы закинуть следующий (такой же), а можно же нагрузить все устройства и чтоб мопы летали каждый такт через RAT, ROB, retirement station, MOB ...
     
  8. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    bogrus

    Надо эксплуатировать элементы потребляюшие наибольший ток. Простые комманды выполняются слишком быстро, чтобы вызвать серьезный разогрев ИУ (на исполняющие устройства, насколько я понимаю приходится наибольшая токовая нагрузка). Поэтому основной вариант - скармливать по 1000-2000 тяжелых инструкций ALU,FPU,MMX последовательно (не смешивая разнотипные).
     
  9. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    alpet




    Согласен, можно взять посложнее (сдвиг, скан бита) или с тем же делением (пока оно выполняется) совместить инструкции использующие другие блоки, хуже ведь не будет, хотя тут уже прийдется учитывать специфику каждого камня ...
     
  10. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    bogrus

    В принципе можно - но имхо пару в бане не добавит. Другое дело что тяжелые векторные инструкции параллелятся лишь частично с простыми, а некоторые и вовсе не желают. Насколько мне известно прогреватель S&M использует в основном комманды типа FDIV.
     
  11. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    alpet



    А почему не сразу факториал миллиона? =)
     
  12. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    alpet "S&M использует в основном комманды типа FDIV."

    ага как же он всем говорит по-разному один раз мне Fmul, знакомому сказал ALU-шные команды и т. д.
     
  13. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    locki

    Помоему тебе не хватает банального эксперимента. Зачем гадать, когда можно потестировать все команды?
     
  14. n2k

    n2k kris kaspersky

    Публикаций:
    0
    Регистрация:
    22 янв 2005
    Сообщения:
    102
    Адрес:
    Russia
    вообще-то, основную площадь кристалла занимает L2 кэш,

    и интенсивная работа с ним (постоянное вытеснение/

    загрузка линеек) дает ощутимый результат.

    у меня на P-III и Атлоне 1050 тепература подпрыгивает

    как ненормальная, правда P-4 еще не проверял
     
  15. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    Да - L2 кэш очень даже нагревает - потому я и написал юзать store\load, но таким образом, чтоб до памяти не дошло.
     
  16. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    ищи cpustres.exe из windows nt 4 resourcekit

    нагреет все что надо
     
  17. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    rst

    не все, но нагревает - старый уж больно - и поновее найдутся...
     
  18. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    Блин, на практике:

    imul разогревают до 64 гр.

    MMX разогревают до 62 гр.

    FPU fdiv разогревают до 60 гр.

    S&M разогревают до 70 гр. после чего я принудительно останавливал ее.

    Как ну как? достичь таких результатов?!?
     
  19. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    гг - надо все одновременно делать - все блоки нагревать, а не отдельно imul\fdiv... как это грамотно делать умные люди думали уже двано - S&M неплохо бы пройтись vtune и дизасемблировать критические куски. А может и простейшее смешивание поможет...
     
  20. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    простейшее смешивание НЕ помогает!!!

    пробовал даже 3 потока тоже нихрена!