Привет ЛОР. Для тех кому «лень читать эту простыню» - ниже рассказано о том что в закрытом драйвере ATi/AMD энергосбережение есть, но не идеально, а в открытом оно есть, но не работает.
Введение
К видеокартам подключается дополнительное питание. Если оно не подключено, видеокарта сигнализирует об этом. NVIDIA - встроенным спикером, ATi/AMD - гудением, достигаемым включением кулера на полную скорость.
У CPU и GPU в 00-х годах появился режим энергосбережения. Раньше энергопотребление и скорость оборота кулера была одинаковая и с нагрузкой, и без неё. А теперь когда нагрузки нет процессоры потребляют меньше энергии, а кулеры крутятся медленнее. Я думаю, многие помнят рекламу от Intel и AMD, рассказывающую об этих технологиях.
История
Я считаю BOINC на NVIDIA CUDA и Bitcoin на ATi/AMD OpenCL. В настройках вычисляющей программы есть параметр интенсивности, когда она маленькая можно пользоваться компьютером, а когда она большая то вывод графики замедляется (как на NVIDIA, так и на ATi/AMD). Вывод всех программ становится скачкообразным. А если ещё и 2D-ускорение используется, то программа тормозит.
Однако я заметил разницу между ATi и NVIDIA. Курсор мыши при расчётах на NVIDIA с высокой интенсивностью не тормозит: двигается так же естественно, как и должен, тогда как все программы тормозят. Как будто его рисует какая-то другая видеокарта поверх картинки от первой. С ATi же и курсор двигается с лагами тоже. Этим и объясняется то что большинство пользователей не видят фризящегося курсора мыши при возникновении бага 12309.
А ещё видеокарта ATi во время 12309 гудит. Если у меня просто рабочий стол и браузер, а тут система фризится, то всё хорошо. А если полноэкранная игра или OpenCL, то гудит. В первом абзаце я описал поведение видеокарт ATi/AMD, в которые не вставлено дополнительное питание, при включении компьютера, а во втором абзаце - про энергосбережение. Оказывается что когда Linux фризится, энергосбережение ATi/AMD пропадает! Но стоит курсору мыши начать двигаться, а программе продолжать работать, как гудение прекращается. Я могу даже записать видео как кулер видеокарты подвывает под хрустение жёсткого диска, который активно пользуется SWAP. А у NVIDIA с этим всё хорошо: даже если система встала, энергосбережение работает.
Кто-нибудь мне, наверное, посоветует открытый драйвер видеокарты. У него всё ещё хуже. Прямо сейчас я пишу с ноутбука, в системный трей я вынес температуру. Сейчас она 64 градуса, но если я включаю OpenGL-игру температура растёт до 75-88 градусов (если закрыть дырочки для воздуха температура доходит до 95 и ноутбук отключается). Видеокарта - ATi, а драйвер - закрытый. С открытым температура высокая всегда, как с нагрузкой, так и без. Я пробовал включать другие системы энергосбережения открытого драйвера, передавая какие-то переменные в файл в каталоге /proc по шаманской мануалке - ничего не изменилось. В обсуждении этого явления на ЛОРе кто-то сказал что код энергосбережения в закрытом драйвере длиннее чем весь открытый драйвер.
Заключение
Тогда как в закрытом драйвере энергосбережение отключается в моменты, когда система фризится, в открытом оно вообще не работает.