Может ли приложение сломать видеокарту?

15

Краткое замечание: я знаю, что это сайт вопросов и ответов по разработке игр, но я думаю, что вы, ребята, больше всего знаете и имеете опыт работы с видеокартами, поэтому я задаю вам этот вопрос. Если вы думаете, что это совершенно не по теме, пожалуйста, направьте меня на соответствующий сайт / форум. Изменить: На самом деле, это связано с gamedev: если плохой код может привести к перегреву или поломке карты, то разработчики игр должны знать об этом и убедиться, что их приложения этого не делают.

Это может показаться странным или глупым вопросом, но возможно ли вообще написать такое приложение для рендеринга графики, которое может сломать видеокарту ( любым способом)?

Непосредственной причиной, которая заставила меня задать этот вопрос, была (не удивительно) моя собственная сломанная видеокарта. После ремонта он сказал, что он тестировал различные приложения (игры) на нем, и он работал нормально. Но когда я запустил свое собственное приложение (демонстрация отложенного затенения), оно нагревало его до температуры выше 100 градусов по Цельсию. Так что моя карта, в конце концов, не была исправлена, но здесь важно то, что проблема, казалось, возникала только при запуске моего собственного приложения.

Я играл в различные игры, требующие GPU (например, Crysis), и часто доводил его до предела и даже больше (настройки были настолько высоки, что игры работали со скоростью 5 FPS), а также некоторые тесты ... Итак, я дал моя карта много раз так сильно загружалась, что не могла ее догнать (отсюда низкий FPS), но она никогда не достигала опасных температур. Но моему собственному приложению это удалось (по крайней мере, когда была отключена V-Sync). : P Так как это было только мое собственное приложение, я не думаю, что плохая система охлаждения была виновником.

Поэтому я спрашиваю - вы думаете (или, может быть, знаете), возможно ли сломать видеокарту (каким-либо образом, не только перегревом) каким-нибудь порочным кодом?

Обновить:

Джо Суинделл сказал, что перегрев может быть проблемой (ну, это определенно может сломать карту). Но не должна ли надлежащая система охлаждения предотвратить это (ни при каких обстоятельствах)?

Бореал указал на еще одну проблему. Если я правильно понимаю, FPS связан как CPU, так и GPU (это верно?). Столь низкий FPS может сигнализировать о высокой загрузке процессора или высокой загрузке графического процессора . Но опять же - не должна ли надлежащая система охлаждения предотвращать перегрев графического процессора, даже если карта «используется на все 100%»?

NPS
источник
Большинство игр не будут использовать ваш графический процессор в полной мере - они будут во многом связаны с процессором. Тем не менее, ваше собственное приложение может ничего не делать на стороне процессора, что приведет к гораздо более высокому использованию графического процессора. Проще говоря, графические процессоры не предназначены для использования на все 100%. Вот почему вы не хотите покупать подержанный графический процессор прямо сейчас - он, вероятно, использовался для майнинга биткойнов.
jmegaffin
6
@Boreal Я категорически не согласен с этим. Если вы покупаете GPU от качества платы производителя, он будет предназначен для использования на 100% все время, и охлаждения и тактовые частоты были установлены , чтобы обеспечить его стабильную в этих условиях. Теперь, если у вас есть какой-то ненадлежащий радиатор вторичного рынка или вы разогнали карту до опасного уровня, это уже другая история.
Натан Рид
«Но разве надлежащая система охлаждения не должна препятствовать этому (ни при каких обстоятельствах)?» - говорят, что вентиляторы, радиаторы и выхлопные газы вашего графического процессора забиты пылью, потому что вы не заботились о своем компьютере. Тогда он может перегреться и сломаться даже на дорогих деталях. Надеюсь, он просто обнаружит тепло, выключится и перезагрузится, прежде чем он будет поврежден, но вы действительно не хотите на это ставить.
Шон Мидлдитч
К вашему сведению, на самом деле компьютер должен отключиться при опасном перегреве. Возможно ли это отключено на вашем компьютере?
Ричард Тингл
SeanMiddleditch, под «правильным» я имел в виду, среди прочего, чистую, полностью работающую систему охлаждения. Ричард Тингл, я не отключил его сам, по крайней мере. Но я имел в виду мой вопрос как общую проблему, а не поиск решения для моего конкретного случая.
NPS

Ответы:

32

Приложение не должно гарантировать, что графический процессор не перегревается, и не является ошибкой приложения, если оно перегревается.

Если у графического процессора нет надлежащего охлаждения, то да, запуск 3D-приложения может привести к нагреву до опасного уровня. Я не знаю, почему ваше приложение делает это, а Crysis - нет, но это означает, что карта имеет недостаточное охлаждение, и / или она была испорчена (разогнана, или изменены другие заводские настройки / драйверы).

Помимо перегрева, я не знаю других способов, которыми программное обеспечение могло бы физически повредить чип, на котором оно работает. Это действительно не должно быть возможным; это был бы очень серьезный провал дизайна.

Натан Рид
источник
1
Итак, исходя из того, что вы сказали, мне (как программисту) вообще наплевать на то, какую нагрузку (и нагрев) GPU генерирует мое приложение (при условии, что оно работает гладко)?
NPS
11
@NPS Верно. Вы заботитесь о загрузке графического процессора, поскольку она влияет на частоту кадров (и на мобильных устройствах, на время автономной работы), но вы не обязаны заботиться о том, как она влияет на температуру - это должны беспокоить драйверы / ОС. Если приложение перегревает графический процессор, оно не охлаждается должным образом и / или что-то не так с динамическим масштабированием частоты драйвера.
Натан Рид
4
+1, задача пользователя - убедиться, что его оборудование соответствует требованиям (а «не тает во время игры» считается требованием), а работа оборудования / водителя - сделать все возможное, чтобы защитить карту от повреждения. Приложение должно (и должно) полагаться на это, больше ничего он не может сделать.
Томас
Я хочу написать манифест этики производителя: когда вы покупаете аппаратное обеспечение данной спецификации, вы должны иметь доступ к этой спецификации со всеми условиями, указанными на упаковке (обычно указывается от 0 до 40 градусов Цельсия). И не терпите глупых тепловых удушений, иначе хорошее испытание должно продемонстрировать, что я ограбил мои деньги по ложным заявкам на упаковку.
v.oddou
@NPS "Так что, исходя из того, что вы сказали, мне (как программисту) вообще наплевать на то, какую нагрузку (и нагрев) GPU генерирует мое приложение (если оно работает без сбоев)?" - Да, вы должны заботиться о нагрузке, а не о перегреве. Просто убедитесь, что более низкие настройки создают меньшую нагрузку и, следовательно, меньше шума охлаждения. Так как я иногда играю на батарее, я буду понижать голос в играх на Steam, которые на 100% сжигают CPU и GPU, ничего не делая, и я не единственный.
Питер
24

Это случилось в дикой природе.

У Starcraft II в 2010 году была проблема, когда на экранах меню отсутствовала частота кадров, что создавало странную нагрузку на видеокарты, уничтожая карты некоторых поставщиков с недостаточной тепловой защитой.

Недостатки конструкции и изготовления самого GPU также могут привести к разборке карты под нагрузкой. Мобильные графические процессоры G84 / G86 имели паяные соединения, которые ломались при приемлемых температурных нагрузках и в конечном итоге ломались. У нас также есть печально известное Красное Кольцо Смерти XBox 360, у которого есть похожие тепловые проблемы с припоем и расширением.

Все вышеперечисленное представляет собой смесь аппаратных дефектов и недостаточных тепловых конструкций, усиленных программной нагрузкой.

Ларс Виклунд
источник
6
Starcraft был примером, о котором я сразу подумал. Хотя, возможно, Starcraft выявил ошибку с несколькими видеокартами, а затем предоставил обходной путь для этой ошибки, а не Starcraft на самом деле виноват. Не то чтобы кто-либо с уничтоженной картой слишком сильно заботился об этом различии
Ричард Тингл
1
Когда-то поколение не-умных мониторов могло разрушить свои обратные преобразователи с помощью программного обеспечения, вставляющего неверные значения в регистры CRTC. Третья причина неудач в добавлении заключается в том, что из-за скоростной гонки многие производители срезали углы, часто карты не были достаточно прочными на 100%
Патрик Хьюз,
9

Ваш вопрос гораздо сложнее, чем вы написали. Я бы сказал, что общий вопрос «может ли программное обеспечение сломать аппаратное обеспечение?», И ответ на этот вопрос однозначно да.

Имейте в виду, что не все аппаратное обеспечение теоретически может быть сломано с помощью программных команд, но в конечном итоге программное обеспечение посылает электрические сигналы очень чувствительным аппаратным компонентам. Обычно, чем деликатнее аппаратный компонент, тем больше вероятность его повреждения, если он обрабатывается не так, как он был спроектирован.

Есть много забавных способов, как аппаратное обеспечение может сломаться, но давайте просто рассмотрим перегрев: обработка данных генерирует тепло, и это тепло должно куда-то уходить. В зависимости от характеристик рассеивания вашей карты, потока воздуха в корпусе и общей температуры в помещении количество тепла, отводимого из системы, может быть больше или меньше того, что генерируется ею.

Если вы попросите видеокарту выполнить работу, которая генерирует больше тепла, чем можно эффективно рассеять, тогда температура чипа повысится. Если вы продолжите в том же духе, температура поднимется выше безопасного рабочего уровня, и чип сломается, потеряет волшебный дым и, возможно, даже станет причиной пожара. Вы только что сломали свою видеокарту, надеюсь, вы счастливы.

Теперь, вы можете написать программное обеспечение, которое делает это? Скорее всего, нет. Любая написанная вами (на уровне пользователя) программа не будет напрямую взаимодействовать с видеокартой. Есть много мер безопасности, разработанных для предотвращения этой ситуации, и все они должны потерпеть неудачу, чтобы ваша программа рендеринга в конечном итоге сожгла ваш дом.

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

  2. Если тепловыделение больше, чем тепловыделение, первой линией защиты будет водитель. Большинство драйверов будут проверять температуру ядра графического процессора, и, если она повышается, драйвер может ограничить количество инструкций, которые он отправляет в графический процессор, чтобы предотвратить выделение большего количества тепла.

  3. Если это не удастся, встроенное программное обеспечение графической карты должно обнаружить, что нагревание опасно накапливается, и, следовательно, уменьшит тактовую частоту в попытке уменьшить тепловыделение.

  4. Если после всего этого тепло все равно будет накапливаться, термодатчик, доступный в большинстве современных процессоров и графических процессоров, полностью отключит видеокарту, и выделение тепла прекратится.

Итак, если вы хотите отделить дорогую видеокарту от приложения уровня пользователя из-за перегрева, в дополнение к созданию программного обеспечения, которое максимально нагружает систему, вам потребуется:

  1. Неисправная или сломанная система отвода тепла. Просто воткните палец в вентилятор (всегда в центре, а не в лопастях). Сложность: Легко

  2. Пользовательский (или глючный) драйвер с отключенными или неработающими функциями регулирования. Сложность: Нормальная

  3. Кастомная прошивка с функциями уменьшения часов отключена или сломана. Сложность: сложная

  4. Сломанный термодиод. Если вы постоянно активируете термодатчик, он может быть поврежден. Сложность: очень тяжело

... но не невозможно! Не стесняйтесь попробовать *, но убедитесь, что вы держите телефон своей пожарной охраны под рукой, когда делаете это.

*: Это сарказм Я никоим образом не потворствую возникновению пожара или любой деятельности, которая может каким-либо образом причинить вред вам, вашей семье, собаке или сообществу. Читая этот пост, вы полностью отказываетесь от любой ответственности, которую могут принести ваши действия.

Панда Пижама
источник
1
+1 для многих вещей, но особенно для размышлений о собаке. :)
Эндрю Томпсон
2

Даже если VSYNC отключен, многие игры могут не достичь 98% использования графического процессора. Чем более актуальный игровой процесс они реализуют, тем меньше кадров они могут поставить и тем более вероятно, что графический процессор будет недостаточно использован. Хорошие многоядерные оптимизированные игры могут значительно приблизиться к 100% -ному использованию графического процессора, но, как правило, логика игрового процесса заставляет процессор достаточно загружаться другими задачами, что не позволяет насытить графический процессор полной рабочей нагрузкой. Приложения для чистого рендеринга могут легко достичь 100% загрузки графического процессора, но игры делают намного больше, чем рендеринг.

Напомним, что на моей домашней машине мой графический процессор генерирует значительные электромагнитные помехи при высокой нагрузке, что мешает дешевому встроенному звуку на моей материнской плате. Я слышу громкое нытье над аналоговым звуком, частота которого меняется в зависимости от нагрузки. Мне это нравится, и я считаю это скорее особенностью, чем недостатком дизайна, это делает профилирование интересным, так как я могу фактически услышать уровень нагрузки без необходимости опробовать счетчик производительности GPU. Тем не менее, я полагаю, что если у вас есть какое-либо устройство, которое очень чувствительно к EMI и недостаточно экранировано, это может быть проблемой ... высокая загрузка графического процессора может вызвать сбой в другом устройстве.

Андон М. Коулман
источник
0

Перегрев разрушает вашу видеокарту. Создание огромного цикла данных, которые он не может обработать, безусловно, как вы видели, приведет к сбою и, возможно, повреждению вашей карты навсегда.

Джо Суинделл
источник
4
Но любое приложение может дать карту больше, чем она может жевать (почти любая игра, которая на несколько лет моложе самой карты). Надлежащая система охлаждения должна предотвратить это (независимо от того , какое приложение делает), не так ли?
NPS
Вы правы в том, что любая игра МОЖЕТ делать это ... но большая часть кода не будет вытеснять GPU на 100%, и если это происходит, обычно это не 100% в течение длительных периодов времени. Хотя я бы на 100% согласился с вами, что правильная система охлаждения должна предотвращать все это.
Джо Суинделл
2
Это похоже на безумие. Тактовая частота должна быть установлена ​​на безопасном уровне, как и у процессора
Ричард Тингл
0

Да, оно может.

  • Перегрев, как очевидный пример, может быть вызван экстремальными нагрузками. Обычно достигается за счет разгона. Это было бы проще всего целенаправленно вызвать.

Этого можно избежать с помощью хороших систем охлаждения. Включение V-синхронизации также является хорошим способом избежать этого. V-синхронизация не позволяет графическому процессору выводить кадры с большей скоростью, чем может обработать монитор, то есть кадры, которые обычно отбрасываются, никогда не будут видны.

Меньше кадров = меньше обработки = меньше экстремальной рабочей нагрузки.

Отслеживание возможностей графического процессора также важно. Я предполагаю, что программисты в Crytek написали код, чтобы быть готовыми к тому, что кто-то переоценит свои возможности видеокарт. Если они это сделали, я уверен, что это функция, которая спасла многих GPU, и спасла многих неосведомленных владельцев GPU от разочарования.

  • Небольшое количество поврежденных (или неправильно закодированных) данных может привести к тому, что указатель в конечном итоге будет указывать на то место, куда он не должен, что может разрушить все виды вещей. Хотя он, вероятно, не постоянный, он может вызывать различные степени сбоев в работе. Такая ошибка в процессоре обычно обнаруживается ОС и ее избегают, или, если ее невозможно избежать, вызовет BSOD (синий экран смерти).

Этого можно избежать с помощью тщательного кодирования и двойной проверки во время выполнения. (Но всегда есть ошибки. Если нет, это потому, что они играют с вами.)

  • Графический процессор также будет иметь драйвер, который добавляет еще одно место, где все может пойти не так. Некоторые данные могут быть там повреждены, или может быть ошибка и т. Д. И т. Д. Чтобы добавить к этим драйверам, как правило, существует риск возникновения BSOD. Резервная система ОС, когда что-то идет не так, как надо, и ей нужно запустить аварийное отключение, чтобы попытаться минимизировать или предотвратить ущерб. Тщательно закодированный драйвер (надеюсь) не сделает этого, но всегда есть вероятность ошибок. В том числе в процедурах аварийного отключения.

Этого можно избежать с помощью тщательного кодирования и двойной проверки во время выполнения.

Вольфганг Скайлер
источник
3
К счастью, драйверы дисплея долгое время не были значительным источником BSOD. Microsoft полностью пересмотрела модель драйвера в Windows NT 6.0 (Vista) и переместила большую часть драйвера в пользовательский режим; BSOD вызваны только сбоем в режиме ядра. Когда происходит сбой драйвера дисплея в пользовательском режиме, самое худшее, что случается, это то, что драйвер сбрасывается сам - в игре D3D вам, возможно, придется иметь дело с потерей контекста и тратить время на перезагрузку ресурсов, но в GL вы иногда можете полностью прозрачно восстановиться после этого. , Требуется серьезно низкий уровень, чтобы получить BSOD.
Андон М. Коулман
0

Одним словом ответ: ДА.

Подробный ответ: да. Может (в определенных ситуациях). Представьте, что вы пишете программу, которая радикально переносит данные в ваш графический процессор в бесконечный цикл. Уверен, что он перегреется. Опять же, не несет ли ответственность за это система охлаждения? Конечно, это. Но вы также должны помнить, что система охлаждения также имеет некоторые пороговые уровни. Если вырабатываемое тепло выходит за пределы рабочего диапазона вашей системы охлаждения, то ваша система охлаждения вряд ли пригодится. Я не знаю, что делает ваше приложение, но, говоря с точки зрения программистов, вы можете написать такие программы, которые приводят к такой ситуации.

user1890817
источник
Насколько я могу судить, все это уже было сказано. Это то, что вы имели в виду?
Анко
0
  1. Установка несовпадающего драйвера с используемой картой может легко привести к необратимому повреждению. Мой друг каким-то образом сумел сделать это путем повторной переустановки ОС и физического изменения жесткого диска.

  2. Включите и выключите компьютер много раз. Не уверен, что это может вызвать сбой, но это очень возможно. Во всяком случае, не похоже software, чтобы сделать это.

  3. Управляйте уровнем мощности в системе, включая и отключая энергопотребляющие USB-устройства (например, внешний жесткий диск, который не использует свое питание). Это всегда делает мою клавиатуру и мышь непригодными до следующего перезапуска, и это (более 2 лет ежедневного подключения и отключения 3 жестких дисков) сжигало несколько ячеек в одном из моих чипов памяти, что приводило к BSOD каждые 10-20 минут.

Vladivarius
источник
1
Вы говорите о том, что можно сделать с помощью программного обеспечения, потому что я не уверен?
NPS
WRT # 3, шина 5 В, используемая USB, регулируется источником питания независимо от шины 12 В, которая дополнительно регулируется на материнской плате и видеокарте для питания процессора, графического процессора и системной памяти. Материнские платы часто используют полифузы для ограничения тока через порты USB, что может объяснить проблемы с клавиатурой / мышью при подключении жестких дисков, если они используют один и тот же полифюз. Пусковой ток для вращения диска может привести к падению напряжения на шине питания USB, что приведет к отключению питания на микроконтроллере клавиатуры. Однако ваш сбой ОЗУ почти наверняка совпадение.
Христос
0

Мой личный опыт:

Раньше у меня был Lenovo Thinkpad T61p с Quadro FX570M, построенный примерно в августе 2008 года. Известно, что этот пакет имел неисправные графические процессоры, которые однажды или другой выйдут из строя (пайка была неоптимальной на некоторых выводах графического процессора).

Все было хорошо в течение примерно 5 лет, пока я не запустил на нем XCOM The Bureau (игра, известная тем, что не очень оптимизировалась), ноутбук был горячим, вентиляторы на полной скорости и около 1 часа игры зависали, но не как обычно замораживание ,

Угадай, что ?Я выключил и снова включил ноутбук, он был мертв с соответствующими звуковыми кодами BIOS, указывающими на сбой видео.

Чтобы ответить на ваш вопрос : да (как уже отмечали другие), программное обеспечение может определенно сломать оборудование, если первое не защищено каким-либо образом ; например, если вентилятор графического процессора выключен, то он обязательно взорвется с вероятностью успеха 100%: D

Aybe
источник
Мой вопрос касается оборудования с надлежащим и исправным охлаждением и встроенными системами безопасности. В противном случае мы просто говорим о неисправном оборудовании, которое обязательно выйдет из строя с любым программным обеспечением.
NPS
0

Когда-то у меня была графическая карта GeForce 4 MX 440, и я хотел сыграть в Prince of Persia: пески времени. Но игра не запустилась, потому что не удалось найти ожидаемую поддержку Pixel Shader. Это было немного неожиданно для меня, потому что более поздний Prince of Persia: Warrior Within работал просто отлично.

Итак, в конце концов я нашел 3D-анализатор ( http://www.tommti-systems.com/main-Dateien/files.html ) и заставил игру запускаться и играл в нее в течение нескольких дней. Через пару дней моя видеокарта сломалась - больше ничего не отображалось. У меня был новый компьютер в течение 5-6 месяцев, так что я думаю, что заставить игру работать таким образом на самом деле сломал мою видеокарту :(

Timotei
источник
-1

Да, я сломал несколько. Я больше не запускаю приложения для расчета сетки gpu. Некоторые приложения имеют тенденцию выходить из строя, особенно когда машина переходит в спящий режим, но в обычных ситуациях, когда воздуходувки работают / циркулирует охлаждающая жидкость, проблем не должно быть, если только охлаждение не слишком мало.

Анси
источник
Что вы имеете в виду "спящий режим"? «Спящий режим» обычно относится к режиму приостановки в ОЗУ , состоянию питания компьютера, в котором остается работать только оперативная память. Как это сломало бы видеокарту?
Анко
@ Анко, возьми отсюда. en.wikipedia.org/wiki/Sleep_mode
Anssi
Хорошо, это то, что я думал, ты имел в виду. Я смущен рассуждениями: когда приложения приостановлены в спящем режиме, как они могут нанести ущерб?
Анко
-2

Это может произойти, если замыкание схемы карты, однако это вряд ли произойдет, потому что система изолирована до определенной высокой температуры. В некоторых случаях термодинамическая система карты может быть нарушена, если она действительно близка к другой системе или даже касается другого материала, который не является системой.

Orenrocco
источник
3
Как этот сценарий будет вызван приложением? Кажется, это не решает вопрос.
Сет Бэттин
Я полагаю, что вы не знакомы с логическими воротами И, ИЛИ НЕ,
Оренрокко,
5
И я верю, что вы дико упустили момент, во второй раз.
Сет Бэттин
1
Нет программной команды sendShortCircuit, так как такое короткое замыкание будет дефектом видеокарты. Программное обеспечение не несет ответственности за это. Это вопрос о том, если, например, видеокарты имеют рейтинг «100% использования на срок до 1 с, 90% использования в долгосрочной перспективе в среднем», и программное обеспечение было обязано не превышать этот рейтинг
Ричард Тингл
3
@ user3643191, мы не нападаем на тебя; мы указываем места, где ваш пост может быть улучшен и уточнен. Все эти комментарии со временем будут удалены (намеренно); твой пост - это то, что останется. Вы можете редактировать и улучшать свое сообщение в любое время, поэтому воспользуйтесь возможностью, чтобы сделать лучший ответ. Как только вы это сделаете, вы, вероятно, возьмете некоторые отрицательные голоса (или кто-то может удалить отрицательное голосование), эти комментарии со временем исчезнут, и ваш просвещающий ответ будет полезен на долгие годы.
PotatoEngineer