Оптимизация кода по температуре.

Тема в разделе "WASM.HEAP", создана пользователем Pavia, 20 окт 2009.

  1. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Написал код для обработки изображений, поступающих с камеры.

    И тут глянул и обалдел 78 градусов.

    Ноутбук Ассер центральный процессор Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz

    SSE MMX не использовал, многоядерность тоже не использовал.

    Вот кэш L2 4МБ. А памяти я использую немного побольше. Алгоритмы используются, такие что память я не экономлю. Данные из фильтр в фильтр передается с сохранением копии предыдущих данных. Это происходит потому что входящие данные и выходящие кладутся в разные буферы.


    У кого какие идеи?
     
  2. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    а это точно из-за твоего кода? Может просто давно кулер не чистил?)
     
  3. Noga

    Noga New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2008
    Сообщения:
    92
    Температуру через что смотрел?
     
  4. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Интересно, никогда не озадачивался зависимостью температуры проца от выполняемых команд и, тем более, от алгоритма. Не факт, что она существует. По крайней мере не вижу причин, по которым любой непрерывный поток команд должен грузить проц(с точки зрения энергопотребления/тепловыделения) в большей или меньшей степени по сравнению с другим аналогичным потоком.
     
  5. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    Medstrax
    А зачем тогда холостые циклы изобрели? :3
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Pavia
    Тут предполагался код, не вижу?
    Если помедитировать.. если код использует циклы, то логично использовать Sleep(0...10)
    в циклах для остужения процессора, если код под винду.
     
  7. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Asterix
    1)
    for (int n=0; n<count; n++) for (int i=0; i<1024; i++) for (int j=0; j<768; j++)
    {
    ProcessPixel(n,i,j);
    Sleep(10);
    }
    вот мне интересно я доживу до завершения программы?
    при count=1 это 2184.5(3) часа (почти 3 месяца)
    2) если говорить об эффективной обработки, то какой еще Sleep(10);
    3) если хотите, чтобы процессор меньше грелся, то выключите компьютер (ноутбук) или поставьте нормальную систему охлаждения.
     
  8. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    max7C4
    поставьте Sleep(0)
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    или вынести в отдельный тред и подобрать приоритет
     
  10. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Asterix
    кого. Ветви циклически выполняющие Sleep(10) висят и лишь на наносекунду получая управление и опять уходят в спячку. Тем более, что на 9х Sleep(0) не выполняет переключения и сразу же возвращает управление (или это было на 95 и предшествующих), а на nt 0 округляется до разрешающей способности таймера (по умолчанию 10 миллисекунд). Тем более это не поможет, если стоит многоядерный процессор (многопроцессорная система), где разные ветви одного процесса могут выполняться на разных ядрах (процессорах) одновременно. А точно знаю. Если система многоядерная, то когда одно ядро охлаждается, то второе тоже охлаждается из-за общей оболочки ;))))
     
  11. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    пздц, взаимная бредятина
     
  12. reversecode

    reversecode Guest

    Публикаций:
    0
    Pavia
    кроме как
    избавиться от этого
    других выходов нет

    хотя есть еще пару вариантов
    1) забить
    2) заставить GPU заниматься всем етим
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    По-моему это нормально. Например для современных gpu температура в районе 90С, считается чуть-ли не штатной.
     
  14. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    у нотеров вообще охлаждение плохое. и гпу тут не поможет, тк банка у них одна, предельно плотная и для какихто серьезных радиаторов места нет просто. для них даже подставки специальные продаются. а может и пыли на радиатор насобиралось. если там есть сеточки, то надо чистить временами
    мой стоит на подставке из толстой книжки (забор снизу). летом к входным приставлял еще держатель с вентилятором от старого бп (заодно и на меня дуло. жарко было, однако)
    но, вобще, для издевательств лучше ставить отдельную голую мать с минимумом излишеств
     
  15. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    Pavia
    1) Загрузка ЦП при обработке 100% ?
    2) Может дело в драйвере камеры. Можете ради интереса посмотреть в диспетчере время режима ядра и сравнить с временем режима пользователя. Какой из этих графиков больше грузится при выполнении данной задачи.

    А вообще у ацеров кошмарная система охлаждения, и ей часто требуется генеральная чистка.
     
  16. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    те работает в одно ядро? наполовину загружен? можно поробовать когда поднимается так подуть в воздухозаборники феном холодным токо и посмотреть опустилась ли температура. если опустилась, то недостаточный поток/пыль/закрытый забор или выход. а если нет, то глюк видимо. или радиатор от проца/видюхи отстал

    э, да, есть и более простые способы прикончить любимый нот по-быстрому.