¿Puede una aplicación romper la tarjeta gráfica?


15

Nota rápida: Sé que este es un sitio de preguntas y respuestas sobre el desarrollo de juegos , pero supongo que ustedes, sobre todo, saben y tienen experiencia con las tarjetas gráficas, así que les dirijo esta pregunta. Si cree que esto está completamente fuera de tema, remítame a un sitio / foro adecuado. Editar: En realidad, está relacionado con gamedev: si un código incorrecto puede provocar el sobrecalentamiento o la rotura de la tarjeta, los desarrolladores de juegos deben ser conscientes de eso y asegurarse de que sus aplicaciones no lo hagan.

Esto puede parecer una pregunta extraña o estúpida, pero ¿es realmente posible escribir una aplicación de representación de gráficos que pueda romper la tarjeta gráfica (de alguna manera)?

La razón inmediata que me hizo hacer esta pregunta fue (no es de extrañar) mi propia tarjeta gráfica rota. Después de repararlo, el técnico de servicio dijo que probaron varias aplicaciones (juegos) y funcionó bien. Pero cuando lancé mi propia aplicación (demo de sombreado diferido) la calentó a más de 100 grados centígrados. Después de todo, mi tarjeta no resultó estar arreglada, pero lo importante aquí es que el problema parecía ocurrir solo cuando ejecutaba mi propia aplicación.

He jugado varios juegos que requieren GPU (como Crysis) y, a menudo, lo llevé al límite y más (tenía configuraciones tan altas que los juegos funcionaron a 5 FPS), algunos puntos de referencia también ... Así que he dado mi tarjeta, muchas veces, tanta carga de trabajo que no pudo alcanzar (por lo tanto, bajo FPS) pero nunca alcanzó temperaturas peligrosas. Pero mi propia aplicación logró eso (al menos cuando la sincronización v estaba desactivada). : P Como era solo mi propia aplicación, no creo que un mal sistema de enfriamiento fuera el culpable.

Entonces le pregunto: ¿piensa (o quizás sabe) si es posible romper la tarjeta gráfica (de alguna manera, no solo por sobrecalentamiento) por algún código vicioso?

Actualizar:

Joe Swindell dijo que el sobrecalentamiento puede ser el problema (bueno, definitivamente puede romper la tarjeta). Pero, ¿no debería un sistema de enfriamiento adecuado evitar que eso suceda (bajo ninguna circunstancia)?

Boreal señaló otro problema. Si entiendo correctamente, FPS está vinculado tanto por la CPU como por la GPU (¿es correcto?). Por lo tanto, un FPS bajo puede indicar una carga de CPU alta o una carga de GPU alta . Pero una vez más, ¿no debería un sistema de enfriamiento adecuado evitar que la GPU se sobrecaliente incluso si la tarjeta se "usa al 100% todo el tiempo"?


La mayoría de los juegos no van a utilizar su GPU en todo su potencial; estarán en muchos aspectos vinculados a la CPU. Sin embargo, su propia aplicación puede no estar haciendo nada en el lado de la CPU, lo que conducirá a un uso de GPU mucho mayor. En pocas palabras, las GPU no deben usarse al 100% todo el tiempo. Es por eso que no desea comprar una GPU usada en este momento: probablemente se haya usado para la minería de Bitcoin.
jmegaffin

66
@Boreal Estoy totalmente en desacuerdo con eso. Si compra una GPU de un fabricante de placas de calidad, está diseñada para usarse al 100% todo el tiempo, y las velocidades de enfriamiento y reloj se han configurado para garantizar que sea estable en esas condiciones. Ahora, si tiene un disipador térmico del mercado de accesorios que no está instalado correctamente, o si overclockea la tarjeta a un nivel peligroso, esa es otra historia.
Nathan Reed

"Pero, ¿no debería un sistema de enfriamiento adecuado evitar que eso suceda (bajo ninguna circunstancia)?" - diga que los ventiladores, los disipadores térmicos y el escape de su GPU se llenan de polvo porque no cuidó su computadora. Entonces definitivamente se puede sobrecalentar y romper, incluso con piezas de alta gama. Con suerte, solo detectará el calor y se apagará y se reiniciará antes de que se dañe, pero realmente no quieres apostar por eso.
Sean Middleditch

FYI realmente la computadora debería apagarse cuando se sobrecalienta peligrosamente. ¿Es posible que esto esté deshabilitado en su computadora?
Richard Tingle

SeanMiddleditch, por "apropiado" me refería, entre otros, a un sistema de enfriamiento limpio y completamente funcional. RichardTingle, al menos no lo he desactivado. Pero me refería a mi pregunta como un problema general, no buscando una solución a mi caso concreto.
NPS

Respuestas:


32

No es responsabilidad de la aplicación asegurarse de que la GPU no se sobrecaliente, y no es culpa de la aplicación si se sobrecalienta.

Si la GPU no tiene un enfriamiento adecuado, entonces sí, ejecutar una aplicación 3D puede calentarla a niveles peligrosos. No sé por qué su aplicación lo hace y Crysis no, pero significa que la tarjeta tiene un enfriamiento inadecuado y / o se ha estropeado (overclockeado u otros ajustes / controladores de fábrica alterados).

Además del sobrecalentamiento, no conozco ninguna otra forma en que el software pueda dañar físicamente el chip en el que se está ejecutando. Eso realmente no se supone que sea posible; Sería una falla de diseño muy grave.


1
Entonces, en base a lo que dijo, ¿no debería (como programador) preocuparme en absoluto por la carga de GPU (y el calentamiento) que genera mi aplicación (siempre que funcione sin problemas)?
NPS

11
@NPS Derecha. Le importa la carga de la GPU en la medida en que afecte la velocidad de fotogramas (y en los dispositivos móviles, la duración de la batería), pero no es su responsabilidad preocuparse por cómo afecta la temperatura, eso es de lo que deben preocuparse los controladores / SO. Si una aplicación sobrecalienta la GPU, entonces no se enfría correctamente y / o hay algún problema con la escala de frecuencia dinámica del controlador.
Nathan Reed

44
+1, es el trabajo del usuario asegurarse de que su hardware cumpla con los requisitos (y "no derretirse durante el juego" cuenta como un requisito) y el trabajo del hardware / controlador para hacer todo lo posible para proteger la tarjeta del daño. La aplicación debe (y debe) confiar en eso, no hay nada más que pueda hacer.
Thomas

Quiero escribir un manifiesto para la ética del fabricante: cuando compra una pieza de hardware de una especificación dada, debería poder acceder a esta especificación bajo todas las condiciones establecidas en el paquete (generalmente se indica de 0 a 40 grados C). Y no sufrir estúpido estrangulamiento térmico, de lo contrario, un buen juicio debería demostrar que me robaron mi dinero por reclamos falsos sobre el paquete.
v.oddou

@NPS "Entonces, en base a lo que dijiste, ¿debería (como programador) no preocuparme en absoluto por la carga de GPU (y el calentamiento) que genera mi aplicación (siempre que funcione sin problemas)?" - Sí, debe preocuparse por la carga, pero no por el sobrecalentamiento. Solo asegúrese de que las configuraciones más bajas generen una carga más baja y, por lo tanto, menos ruido de enfriamiento. Como a veces juego con batería, votaré en contra de los juegos en Steam que queman el 100% de la CPU y la GPU sin hacer nada, y no soy el único.
Peter

24

Ha sucedido en la naturaleza.

Starcraft II en 2010 tuvo un problema en el que tenía una velocidad de fotogramas sin límite en las pantallas de menú que colocaban una carga extraña en las tarjetas gráficas, destruyendo las tarjetas de algunos proveedores con protección térmica insuficiente.

Los defectos de diseño y fabricación en la propia GPU también pueden llevar a que la tarjeta se desmantele bajo carga. Las GPU móviles G84 / G86 tenían uniones de soldadura que se rompieron bajo cargas de temperatura aceptables y finalmente se rompieron. También tenemos el infame Red Ring of Death del XBox 360 que tiene problemas térmicos similares con la soldadura y la expansión.

Todo lo anterior es una mezcla de defectos de hardware y diseños térmicos insuficientes, amplificados por la carga del software.


66
Starcraft fue el ejemplo en el que pensé inmediatamente con esto. Aunque podría decirse que Starcraft expuso un error con una serie de tarjetas gráficas y luego proporcionó una solución para ese error en lugar de que Starcraft realmente tenga la culpa. No es que a nadie con una carta destruida le importe demasiado esa distinción
Richard Tingle

1
Érase una vez una generación de monitores no inteligentes podría hacer que sus transformadores de retorno fueran destruidos por el software introduciendo valores incorrectos en los registros CRTC. Una tercera razón para las fallas en agregar es que la carrera de velocidad hizo que muchos fabricantes cortaran esquinas, muchas veces las tarjetas no fueron construidas lo suficientemente resistentes para el 100%
Patrick Hughes

9

Tu pregunta es mucho más compleja que lo que escribiste. Yo diría que la pregunta general es "¿puede el software romper el hardware?", Y la respuesta a eso es un sí definitivo.

Eso sí, no todo el hardware puede romperse teóricamente mediante comandos de software, pero eventualmente, lo que hace el software es enviar señales eléctricas a componentes de hardware muy delicados. Por lo general, cuanto más delicado es un componente de hardware, es más probable que se dañe cuando se maneja de una manera en la que no fue diseñado.

Hay muchas maneras divertidas en que el hardware puede romperse, pero consideremos el sobrecalentamiento: el trabajo de procesamiento genera calor, y ese calor tiene que ir a algún lado. Dependiendo de las características de disipación de su tarjeta, el flujo de aire en el estuche y la temperatura general en la habitación, la cantidad de calor eliminada del sistema puede ser más o menos de lo que está generando.

Si le pide a la tarjeta de video que haga un trabajo que genera más calor del que se puede disipar eficientemente, entonces la temperatura del chip aumentará. Si lo mantiene en funcionamiento, la temperatura se elevará por encima del nivel de funcionamiento seguro y el chip se romperá, perderá su humo mágico y probablemente incluso provocará un riesgo de incendio. Acabas de romper tu tarjeta de video, espero que estés feliz.

Ahora, ¿ puedes escribir software que haga esto? Yo diría que muy probablemente no. Cualquier programa (a nivel de usuario) que escriba no se comunicará directamente con la tarjeta de video. Hay muchas salvaguardas diseñadas para prevenir esta situación, y todas tienen que fallar para que su programa de renderización termine quemando su casa.

  1. En general, los disipadores de calor y los ventiladores están diseñados para que puedan eliminar cómodamente la cantidad máxima de calor que generará la tarjeta, incluso en casos con poca ventilación en climas cálidos (dentro de los rangos de operación especificados por el fabricante)

  2. Si la generación de calor es mayor que la disipación de calor, la primera línea de defensa sería el conductor. La mayoría de los controladores verificará la temperatura central de la GPU, y si está subiendo, el controlador puede limitar la cantidad de instrucciones que envía a la GPU para evitar generar más calor.

  3. Si eso falla, el firmware en la tarjeta gráfica debería detectar que el calor se está acumulando peligrosamente y, por lo tanto, reducirá la velocidad del reloj en un intento de reducir la generación de calor.

  4. Si después de todo eso, el calor aún se está acumulando, un diodo térmico disponible en la mayoría de las CPU y GPU modernas apagará la tarjeta de video por completo y la generación de calor se detendrá.

Por lo tanto, si desea romper su costosa tarjeta de video de una aplicación de nivel de usuario a través del sobrecalentamiento, además de crear un software que estrese el sistema al máximo, necesitaría:

  1. Un sistema de disipación de calor defectuoso o roto. Simplemente meter el dedo en el ventilador (siempre en el centro, no en las aspas) debería ser suficiente. Dificultad: fácil

  2. Un controlador personalizado (o con errores) con funciones de regulación deshabilitadas o rotas. Dificultad: normal

  3. Un firmware personalizado con funciones de reducción de reloj deshabilitadas o rotas. Dificultad: difícil

  4. Un diodo térmico roto. Si activa constantemente el diodo térmico, puede dañarse. Dificultad: muy difícil

... ¡pero no imposible! Siéntase libre de probarlo *, pero asegúrese de tener el teléfono de su departamento de bomberos a mano cuando lo haga.

*: Esto es sarcasmo. No estoy de ninguna manera tolerando la creación de un riesgo de incendio, o cualquier actividad que pueda dañarlo a usted, su familia, perro o comunidad de alguna manera. Al leer esta publicación, me renuncia completamente a cualquier responsabilidad que sus acciones puedan traer.


1
+1 por muchas cosas, pero especialmente por pensar en el perro. :)
Andrew Thompson

2

Incluso con VSYNC apagado, muchos juegos pueden fallar incluso al 98% de utilización de GPU. Cuanto más realicen la jugabilidad, menos marcos podrán organizar y es más probable que la GPU quede subutilizada. Los buenos juegos optimizados de múltiples núcleos pueden acercarse significativamente al 100% de utilización de GPU, pero en general la lógica del juego mantiene a la CPU lo suficientemente ocupada con otras tareas que no puede saturar la GPU con una carga de trabajo completa. Las aplicaciones de renderizado puro pueden alcanzar fácilmente una carga de GPU del 100%, pero los juegos hacen mucho más que renderizar.

En una nota al margen, en mi máquina doméstica, mi GPU genera una EMI significativa bajo alta carga e interfiere con el audio integrado barato en mi placa base. Puedo escuchar un sonido agudo sobre el audio analógico cuya frecuencia varía con la carga. He disfrutado eso y lo considero una característica en lugar de un defecto de diseño, hace que la elaboración de perfiles sea interesante ya que realmente puedo escuchar el nivel de carga sin tener que probar un contador de rendimiento de GPU. Sin embargo, supongo que si tiene algún dispositivo que sea muy sensible a EMI y esté protegido de manera inadecuada, esto podría ser un problema ... una carga de GPU alta podría causar fallas en otro dispositivo.


0

El sobrecalentamiento está rompiendo su tarjeta gráfica. Lanzar un ciclo masivo de datos que no puede manejar seguramente, como has visto, se bloqueará y posiblemente dañará tu tarjeta de forma permanente.


44
Pero cualquier aplicación puede darle a la tarjeta más de lo que puede masticar (casi cualquier juego unos años más joven que la tarjeta en sí). Un sistema de enfriamiento adecuado debería evitar eso (no importa qué aplicación haga), ¿no?
NPS

Tienes razón en que cualquier juego PODRÍA hacer eso ... pero la mayoría del código no estrangulará la GPU al 100% y si lo hace, generalmente no es 100% por períodos prolongados. Aunque, estaría 100% de acuerdo con usted en que un sistema de enfriamiento adecuado debería evitar todo eso.
Joe Swindell

2
Esto parece una locura. La velocidad del reloj debe establecerse en un nivel seguro al igual que la CPU
Richard Tingle

0

Sí puede.

  • El sobrecalentamiento como el ejemplo obvio, puede ser causado por cargas de trabajo extremas. Por lo general, se logra a través del overclocking. Esto sería lo más fácil de causar a propósito.

Se puede evitar con buenos sistemas de enfriamiento. Habilitar V-sync también es una buena manera de evitar esto. V-sync evita que la GPU genere cuadros a una velocidad más rápida que la que puede controlar el monitor, que son cuadros que normalmente se caen, que nunca se verán.

Menos cuadros = menos procesamiento = menos carga de trabajo extrema.

Hacer un seguimiento de las habilidades de la GPU también es importante. Me imagino que los programadores de Crytek escribieron el código para estar listos para que alguien sobreestime sus habilidades de tarjetas gráficas. Si lo hicieron, estoy seguro de que es una característica que ha salvado a muchas GPU y ha salvado a muchos propietarios de GPU desconocidos de la frustración.

  • Un poco de datos corruptos (o codificados incorrectamente) puede hacer que un puntero termine apuntando a un lugar donde no se supone, lo que puede destruir todo tipo de cosas. Aunque probablemente no sea permanente, podría causar diversos grados de falla en su operación. Tal falla en la CPU normalmente es detectada por el sistema operativo y se evita o, si no se puede evitar, invocará un BSOD (pantalla azul de la muerte).

Se puede evitar con una codificación cuidadosa y una doble verificación en tiempo de ejecución. (Pero siempre hay errores. Si no los hay, es porque están jugando contigo).

  • La GPU también tendrá un controlador, que agrega otro lugar donde las cosas pueden salir mal. Algunos datos pueden estar dañados allí, o puede haber un error, etc., etc. Para agregar a esos controladores, en general, corre el riesgo de causar un BSOD. El sistema de respaldo del sistema operativo cuando algo sale terriblemente mal y necesita ejecutar una operación de apagado de emergencia para tratar de minimizar o prevenir el daño. Un controlador cuidadosamente codificado (con suerte) no hará esto, pero siempre hay una posibilidad de errores. Incluido en procedimientos de apagado de emergencia.

Esto se puede evitar con una codificación cuidadosa y una doble verificación en tiempo de ejecución.


3
Afortunadamente, los controladores de pantalla no han sido una fuente importante de BSOD en mucho tiempo. Microsoft revisó completamente el modelo del controlador en Windows NT 6.0 (Vista) y puso una gran parte del controlador en modo de usuario; Los BSOD solo son causados ​​por fallas del modo kernel. Cuando el controlador de pantalla en modo de usuario falla, lo peor que sucede es que el controlador se reinicia solo: en un juego D3D, es posible que tenga que lidiar con una pérdida de contexto y pasar un tiempo recargando recursos, pero en GL a veces puede recuperarse de manera completamente transparente. . Se necesita una falla grave de bajo nivel para obtener un BSOD.
Andon M. Coleman

0

Respuesta de una palabra: SI.

Respuesta detallada: sí. Puede (en ciertas situaciones). Imagine que escribe un programa que transfiere drásticamente datos a su GPU a un bucle infinito. Es seguro que se sobrecalentará. Ahora, de nuevo, ¿no es la responsabilidad de su sistema de enfriamiento cuidarlo? Por supuesto que es. Pero también debe recordar que, el sistema de enfriamiento también tiene algunos niveles de umbral. Si el calor producido está fuera del rango operativo de su sistema de enfriamiento, entonces su sistema de enfriamiento no sirve de nada. No sé qué hace su aplicación, pero hablando desde la perspectiva de los programadores, puede escribir tales programas que conducen a este tipo de situación.


Por lo que puedo decir, todo esto ya se ha dicho. ¿Es eso lo que querías decir?
Anko

0
  1. Instalar un controlador que no coincida con la tarjeta real utilizada puede provocar daños permanentes. Mi amigo de alguna manera ha logrado hacerlo mediante la reinstalación repetitiva del sistema operativo y el cambio físico del disco duro.

  2. Haga que su PC se encienda y apague muchas veces. No estoy seguro si eso puede causar fallas, pero es muy posible. De todos modos, no suena como una muy buena softwareforma de hacerlo.

  3. Manipule el nivel de energía en el sistema encendiendo y apagando los dispositivos USB que consumen energía (ejemplo: HDD externo que no usa su propia energía). Hacer esto siempre hace que mi teclado y mi mouse no se puedan usar hasta el próximo reinicio y ha quemado varias celdas en uno de mis chips de RAM (más de 2 años de conexión diaria de 3 HDD), lo que resultó en un BSOD cada 10-20 minutos.


1
¿Estás hablando de cosas que el software puede hacer porque no estoy seguro?
NPS

WRT # 3, el riel de 5V utilizado por USB está regulado por la fuente de alimentación independientemente del riel de 12V, que está regulado en la placa base y la tarjeta gráfica para alimentar la CPU, la GPU y la memoria del sistema. Las placas base a menudo usan fusibles múltiples para limitar la corriente a través de los puertos USB, lo que podría explicar los problemas con el teclado / mouse cuando se conectan los discos duros si comparten el mismo fusible múltiple. La corriente de entrada para hacer girar el plato puede causar una caída de voltaje en el riel de alimentación USB, lo que puede provocar un apagón en el microcontrolador del teclado. Sin embargo, su RAM defectuosa es casi una coincidencia.
bcrist

0

Mi experiencia personal:

Solía ​​tener un Lenovo Thinkpad T61p con un Quadro FX570M construido alrededor de agosto de 2008, se sabía que este lote tenía GPU defectuosas que un día u otro fallarían (la soldadura era subóptima en algunos de los pines de la GPU).

Todo estuvo bien durante aproximadamente 5 años hasta que ejecuté XCOM The Bureau en él (un juego conocido por no estar realmente optimizado), la computadora portátil estaba caliente, los fanáticos a toda velocidad y durante aproximadamente 1 hora de juego se congeló, pero no se congeló habitualmente .

Adivina qué ? Apagué y volví a encender la computadora portátil, estaba muerta con los códigos de pitido de BIOS relevantes que indicaban una falla de video.

Para responder a su pregunta : sí (como han señalado otros), un software definitivamente puede romper el hardware si el primero no está protegido de alguna manera ; si, por ejemplo, el ventilador de la GPU está apagado, definitivamente explotará con un 100% de posibilidades de éxito: D


Mi pregunta aborda el hardware con refrigeración adecuada y en funcionamiento y sistemas de seguridad incorporados. De lo contrario, solo estamos hablando de hardware defectuoso que seguramente fallará con cualquier software.
NPS

0

Una vez tuve una tarjeta gráfica GeForce 4 MX 440 y quería jugar Prince of Persia: arenas de tiempo. Pero el juego no se lanzó porque no pudo encontrar el soporte esperado de Pixel Shader. Esto fue un poco inesperado para mí, porque el Príncipe de Persia: Guerrero interno más tarde funcionó bien.

Entonces, al final encontré un analizador 3D ( http://www.tommti-systems.com/main-Dateien/files.html ) y forcé el juego a correr y jugué durante varios días. Después de un par de días, mi tarjeta de video se rompió, ya no mostraba nada. Tuve la nueva computadora durante unos 5-6 meses, así que creo que forzar el juego de esta manera realmente rompió mi tarjeta de video :(


-1

Sí, he roto algunas. Ya no ejecuto aplicaciones de cálculo de grid gpu. Algunas aplicaciones tienden a romperlas, especialmente cuando la máquina entra en modo de suspensión, pero en situaciones normales cuando los sopladores están funcionando / el líquido de enfriamiento está circulando, no debería haber problemas a menos que el enfriamiento sea insuficiente.


¿Qué quieres decir con "modo de sueño"? El "modo de suspensión" generalmente se refiere a la suspensión a RAM , un estado de alimentación de la computadora en el que solo la memoria de acceso aleatorio permanece activada. ¿Cómo rompería eso una tarjeta gráfica?
Anko

@ Anko, tómalo desde aquí. en.wikipedia.org/wiki/Sleep_mode
Anssi

OK, eso es lo que pensé que querías decir. Sin embargo, estoy confundido por el razonamiento: cuando las aplicaciones se suspenden para el modo de suspensión, ¿cómo podrían causar daños?
Anko

-2

Puede hacerlo si el circuito de la tarjeta se cortocircuita, sin embargo, es muy poco probable que esto suceda porque el sistema está aislado hasta una cierta temperatura alta. En algunos casos, el sistema termodinámico de la tarjeta puede verse afectado si está realmente cerca de otro sistema o si incluso está tocando otro material que no es un sistema.


3
¿Cómo sería el escenario causado por una aplicación? Esto no parece abordar la pregunta.
Seth Battin

Creo que no estás familiarizado con AND, OR, NO con las puertas lógicas
Orenrocco

55
Y creo que perdiste el punto por segunda vez.
Seth Battin

1
No hay comando de software sendShortCircuit, ya que un cortocircuito sería un defecto en la tarjeta gráfica. El software no sería responsable de esto. Esta pregunta es acerca de si, por ejemplo, las tarjetas gráficas están clasificadas como "100% de uso por hasta 1s, 90% de uso a largo plazo promedio" y el software se vio obligado a no exceder esa calificación
Richard Tingle

3
@ user3643191, no te estamos atacando; señalamos lugares donde su publicación se puede mejorar y aclarar. Todos estos comentarios eventualmente serán eliminados (por diseño); tu publicación es lo que quedará Puedes editar y mejorar tu publicación en cualquier momento, así que aprovecha la oportunidad para responder mejor. Una vez que haga eso, probablemente obtendrá algunos votos positivos (o alguien podría eliminar un voto negativo), estos comentarios finalmente desaparecerán y su respuesta esclarecedora educará en los próximos años.
PotatoEngineer
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.