Um aplicativo pode quebrar a placa gráfica?


15

Nota rápida: Eu sei que este é um site de perguntas e respostas sobre desenvolvimento de jogos, mas acho que vocês, acima de tudo, conhecem e têm experiência com placas gráficas, então eu dirijo essa pergunta a vocês. Se você acha que isso é completamente fora de tópico, consulte-me em um site / fórum adequado. Edit: Na verdade, é relacionado ao jogo: se um código incorreto pode resultar em superaquecimento ou quebra de cartão, os desenvolvedores de jogos devem estar cientes disso e garantir que seus aplicativos não façam isso.

Isso pode parecer uma pergunta estranha ou estúpida, mas é realmente possível escrever um aplicativo de renderização gráfica que possa quebrar a placa gráfica (de alguma forma)?

O motivo imediato que me fez fazer essa pergunta foi (sem surpresa) minha própria placa de vídeo quebrada. Depois de repará-lo, o técnico disse que testou vários aplicativos (jogos) nele e funcionou bem. Mas quando lancei meu próprio aplicativo (demo de sombreamento diferido), ele o aqueceu a mais de 100 graus Celsius. Afinal, meu cartão não foi corrigido, mas o importante aqui é que o problema parecia ocorrer apenas ao executar meu próprio aplicativo.

Joguei vários jogos que exigem GPU (como o Crysis) e muitas vezes o levei ao limite e mais (tinha configurações tão altas que os jogos rodavam a 5 FPS), alguns benchmarks também ... meu cartão, muitas vezes, com tanta carga de trabalho que não conseguia recuperar o atraso (portanto, baixo FPS), mas nunca atingiu temperaturas perigosas. Mas meu próprio aplicativo conseguiu isso (pelo menos quando o v-sync estava desativado). : P Como era apenas meu próprio aplicativo, não acho que um sistema de refrigeração ruim foi o culpado.

Então eu pergunto - você acha (ou talvez saiba) se é possível ou não quebrar a placa de vídeo (de alguma forma, não apenas por superaquecimento) por algum código vicioso?

Atualizar:

Joe Swindell disse que o superaquecimento pode ser o problema (bem, definitivamente pode quebrar o cartão). Mas um sistema de refrigeração adequado não deve impedir que isso aconteça (sob nenhuma circunstância)?

Boreal apontou outro problema. Se bem entendi, o FPS está vinculado à CPU e à GPU (isso está certo?). FPS tão baixo pode sinalizar alta carga da CPU ou alta GPU . Mas, novamente - um sistema de refrigeração adequado não deve impedir o superaquecimento da GPU, mesmo que a placa seja "usada 100% o tempo todo"?


A maioria dos jogos não utiliza seu GPU em todo o seu potencial - eles estarão de várias maneiras vinculados à CPU. No entanto, seu próprio aplicativo pode não estar fazendo nada no lado da CPU, o que levará a um uso muito maior da GPU. Simplificando, as GPUs não devem ser usadas a 100% o tempo todo. É por isso que você não deseja comprar uma GPU usada no momento - provavelmente ela foi usada para mineração de Bitcoin.
Jmegaffin

6
@ Boreal Eu discordo totalmente disso. Se você compra uma GPU de um fabricante de placas de qualidade, ela é projetada para ser usada a 100% o tempo todo, e as velocidades de resfriamento e de clock foram definidas para garantir sua estabilidade nessas condições. Agora, se você tiver um dissipador de calor de pós-venda que não esteja instalado corretamente ou se você fizer um overclock da placa em um nível perigoso, isso é outra história.
Nathan Reed

"Mas um sistema de refrigeração adequado não deve impedir que isso aconteça (sob nenhuma circunstância)?" - diga que os ventiladores, dissipadores de calor e exaustores da sua GPU ficam cobertos de poeira porque você não cuidou do seu computador. Definitivamente, pode superaquecer e quebrar, mesmo com peças de ponta. Espero que ele apenas detecte o calor, desligue e reinicie a si próprio antes que seja danificado, mas você realmente não quer apostar nisso.
Sean Middleditch 17/05

Para sua informação, realmente o computador deve desligar-se quando sobreaquecer perigosamente. É possível que isso esteja desativado no seu computador?
Richard Tingle

SeanMiddleditch, por "adequado", eu quis dizer, entre outros, um sistema de refrigeração limpo e totalmente funcional. RichardTingle, pelo menos não desabilitei. Mas eu quis dizer a minha pergunta como um problema geral, não procurando uma solução para o meu caso concreto.
NPS

Respostas:


32

Não é responsabilidade do aplicativo garantir que a GPU não superaqueça e não é culpa do aplicativo se superaquecer.

Se a GPU não tiver um resfriamento adequado, sim, a execução de um aplicativo 3D poderá aquecê-lo a níveis perigosos. Não sei por que seu aplicativo faz e Crysis, mas significa que o cartão tem resfriamento inadequado e / ou foi mexido (com overclock ou outras configurações / drivers de fábrica alterados).

Além de superaquecer, não conheço outra maneira pela qual o software possa danificar fisicamente o chip em que está sendo executado. Isso realmente não deveria ser possível; seria uma falha de design muito séria.


11
Portanto, com base no que você disse, eu (como programador) não me importo com a carga de GPU (e o aquecimento) que meu aplicativo gera (desde que funcione sem problemas)?
NPS

11
@NPS Right. Você se preocupa com a carga da GPU na medida em que afeta a taxa de quadros (e em dispositivos móveis, a duração da bateria), mas não é de sua responsabilidade se preocupar com a forma como isso afeta a temperatura - isso é motivo para preocupação com os drivers / SO. Se um aplicativo superaquecer a GPU, ele não será resfriado adequadamente e / ou há algo errado com o dimensionamento dinâmico da frequência do driver.
Nathan Reed

4
+1, o trabalho do usuário é garantir que o hardware atenda aos requisitos (e "não derreter durante o jogo" conta como requisito) e o trabalho do hardware / driver para fazer o melhor para proteger o cartão contra danos. O aplicativo deve (e deve) confiar nisso, não há mais nada que possa fazer.
Thomas

Quero escrever um manifesto para a ética do fabricante: quando você compra um hardware de uma determinada especificação, deve poder acessá-la sob todas as condições indicadas na embalagem (geralmente de 0 a 40 graus C). E não sofrer estrangulamentos térmicos estúpidos, caso contrário, um bom julgamento deve demonstrar que fui roubado meu dinheiro por falsas alegações sobre o pacote.
19414

@NPS "Com base no que você disse, eu (como programador) não deveria me importar com a carga de GPU (e o aquecimento) que meu aplicativo gera (desde que funcione sem problemas)?" - Sim, você deve se preocupar com a carga, mas não com superaquecimento. Apenas verifique se as configurações mais baixas geram menor carga e, portanto, menos ruído de resfriamento. Como às vezes eu jogo com bateria, vou votar em jogos no Steam que queimam 100% da CPU e GPU sem fazer nada, e não sou o único.
Peter - Unban Robert Harvey

24

Isso já aconteceu na natureza.

O Starcraft II em 2010 teve um problema em que havia uma taxa de quadros não limitada nas telas de menu, colocando uma carga estranha nas placas gráficas, destruindo as placas de algum fornecedor com proteção térmica insuficiente.

As falhas de projeto e fabricação na própria GPU também podem levar à desmontagem da placa sob carga. GPUs móveis G84 / G86 tiveram juntas de solda que quebraram sob cargas de temperatura aceitáveis ​​e eventualmente quebraram. Também temos o infame Red Ring of Death do XBox 360, que tem problemas térmicos semelhantes com solda e expansão.

Todos os itens acima são uma mistura de defeitos de hardware e projetos térmicos insuficientes, amplificados pela carga do software.


6
Starcraft foi o exemplo em que pensei imediatamente com isso. Embora indiscutivelmente, a starcraft tenha exposto um bug com várias placas gráficas e, em seguida, forneceu uma solução alternativa para esse bug, em vez de o Starcraft estar realmente com defeito. Não que alguém com um cartão destruído se importaria muito com essa distinção
Richard Tingle

11
Era uma vez uma geração de monitores não inteligentes que podiam transformar seus transformadores flyback destruídos por software introduzindo valores ruins nos registros CRTC. Uma terceira razão para falhas para adicionar é que a corrida de velocidade feito muitas Manufacturers cantos cortados, muitas vezes cartas não foram construídas suficientemente resistente para 100%
Patrick Hughes

9

Sua pergunta é muito mais complexa do que o que você escreveu. Eu diria que a pergunta geral é "o software pode quebrar o hardware?", E a resposta para isso é um sim definitivo.

Lembre-se de que nem todo hardware pode ser quebrado teoricamente por meio de comandos de software, mas, eventualmente, o que o software faz é enviar sinais elétricos para componentes de hardware muito delicados. Geralmente, quanto mais delicado é um componente de hardware, maior a probabilidade de ele ser danificado quando manuseado de uma maneira que não foi projetado.

Existem várias maneiras divertidas de quebrar o hardware, mas vamos considerar o superaquecimento: o trabalho de processamento gera calor e esse calor precisa ir a algum lugar. Dependendo das características de dissipação do seu cartão, do fluxo de ar no gabinete e da temperatura geral na sala, a quantidade de calor removida do sistema pode ser mais ou menos do que o que está sendo gerado por ele.

Se você solicitar à placa de vídeo um trabalho que gere mais calor do que pode ser dissipado com eficiência, a temperatura do chip aumentará. Se você continuar, a temperatura subirá acima do nível operacional seguro e o chip quebrará, perderá sua fumaça mágica e provavelmente causará risco de incêndio. Você acabou de quebrar sua placa de vídeo, espero que esteja feliz.

Agora, você pode escrever um software que faça isso? Eu diria que provavelmente não. Qualquer programa (no nível do usuário) que você escreve não conversa diretamente com a placa de vídeo. Existem muitas salvaguardas projetadas para evitar essa situação, e todas elas precisam falhar para que seu programa de renderização acabe queimando sua casa.

  1. Geralmente, os dissipadores de calor e os ventiladores são projetados para que possam remover confortavelmente a quantidade máxima de calor que o cartão irá gerar, mesmo em casos com pouca ventilação em climas quentes (dentro das faixas de operação especificadas pelo fabricante)

  2. Se a geração de calor for maior que a dissipação de calor, a primeira linha de defesa seria o motorista. A maioria dos drivers verifica a temperatura central da GPU e, se estiver subindo, o driver poderá limitar a quantidade de instruções enviadas à GPU para evitar a geração de mais calor.

  3. Se isso falhar, o firmware da placa de vídeo deve detectar que o calor está se acumulando perigosamente e, portanto, reduzirá a velocidade do relógio na tentativa de reduzir a geração de calor.

  4. Se depois de tudo isso, o calor ainda estiver aumentando, um diodo térmico disponível na maioria das CPUs e GPUs modernas desligará completamente a placa de vídeo e a geração de calor será interrompida.

Portanto, se você quiser interromper sua dispendiosa placa de vídeo de um aplicativo no nível do usuário por meio de superaquecimento, além de criar um software que sobrecarregue o sistema ao máximo, você precisará:

  1. Um sistema de dissipação de calor com defeito ou quebrado. Simplesmente enfiar o dedo no ventilador (sempre no centro, não nas pás) deve fazer o truque. Dificuldade: Fácil

  2. Um driver personalizado (ou de buggy) com recursos de limitação desativados ou danificados. Dificuldade: Normal

  3. Um firmware personalizado com recursos de redução de relógio desativados ou quebrados. Dificuldade: Difícil

  4. Um diodo térmico quebrado. Se você estiver ativando constantemente o diodo térmico, ele poderá ser danificado. Dificuldade: Muito difícil

... mas não impossível! Sinta-se à vontade para experimentá-lo *, mas mantenha o telefone do corpo de bombeiros à mão ao fazê-lo.

*: Isso é sarcasmo. Não estou de maneira alguma tolerando a criação de um risco de incêndio ou qualquer atividade que possa prejudicar você, sua família, cachorro ou comunidade de qualquer forma. Ao ler este post, você me isenta completamente de qualquer responsabilidade que suas ações possam trazer.


11
+1 para muitas coisas, mas principalmente para pensar no cachorro. :)
Andrew Thompson

2

Mesmo com o VSYNC desligado, muitos jogos podem falhar em atingir 98% da utilização da GPU. Quanto mais jogabilidade real eles implementam, menos quadros podem ser montados e maior a probabilidade de a GPU ficar subutilizada. Bons jogos otimizados para vários núcleos podem se aproximar significativamente da utilização de 100% da GPU, mas geralmente a lógica de jogo mantém a CPU ocupada o suficiente com outras tarefas para que não seja capaz de saturar a GPU com uma carga de trabalho completa. Os aplicativos de renderização pura podem facilmente atingir 100% da carga da GPU, mas os jogos fazem muito mais do que renderizar.

Em uma nota lateral, na minha máquina doméstica, minha GPU gera EMI significativa sob alta carga e interfere com o áudio integrado barato na minha placa-mãe. Consigo ouvir um som agudo sobre o áudio analógico cuja frequência varia com a carga. Cheguei a gostar disso e considero isso um recurso, e não uma falha de design, torna a criação de perfil interessante, pois eu posso realmente ouvir o nível de carga sem ter que experimentar um contador de desempenho da GPU. No entanto, suponho que se você tiver algum dispositivo altamente sensível a EMI e blindado inadequadamente, isso pode ser um problema ... uma carga alta da GPU pode causar falhas em outro dispositivo.


0

O superaquecimento ESTÁ quebrando sua placa gráfica. Lançar um loop massivo de dados que ele não pode manipular certamente irá, como você viu, travar e possivelmente danificar seu cartão permanentemente.


4
Mas qualquer aplicativo pode oferecer mais do que mastigar o cartão (praticamente qualquer jogo alguns anos mais novo que o próprio cartão). Um sistema de refrigeração adequado deve impedir isso (não importa qual aplicativo faça), não deveria?
NPS

Você está certo de que qualquer jogo PODE fazer isso ... mas a maioria dos códigos não sufoca a GPU em 100% e, se o fizer, geralmente não é 100% por períodos prolongados. No entanto, eu concordo 100% com você que um sistema de refrigeração adequado deve impedir tudo isso.
Joe Swindell

2
Isso parece loucura. A velocidade de relógio deve ser ajustado em um nível seguro assim como o CPU
Richard Tingle

0

Sim pode.

  • O superaquecimento como exemplo óbvio, pode ser causado por cargas de trabalho extremas. Geralmente alcançado através de overclock. Isso seria o mais fácil de causar de propósito.

Pode ser evitado com bons sistemas de refrigeração. A ativação da sincronização V também é uma boa maneira de evitar isso. O V-sync impede que a GPU produza quadros a uma taxa mais rápida do que o monitor pode suportar, que são quadros que normalmente caem, e nunca são vistos.

Menos quadros = menos processamento = menos carga de trabalho extrema.

Manter o controle das habilidades da GPU também é importante. Imagino que os programadores da Crytek tenham escrito o código para estarem prontos para alguém superestimar suas habilidades nas placas gráficas. Se o fizeram, tenho certeza de que é um recurso que salvou muitos GPUs e salvou muitos proprietários desconhecidos de GPU da frustração.

  • Um pouco de dados corrompidos (ou codificados incorretamente) pode fazer com que um ponteiro aponte para um lugar que não deveria, o que pode destruir todos os tipos de coisas. Embora provavelmente não seja permanente, pode causar graus variados de falha em sua operação. Tal falha na CPU é normalmente detectada pelo sistema operacional e evitada ou, se não puder ser evitada, invocará um BSOD (tela azul da morte).

Pode ser evitado com codificação cuidadosa e verificação dupla em tempo de execução. (Mas sempre há bugs. Se não, é porque eles estão brincando com você.)

  • A GPU também terá um driver, que adiciona outro lugar em que as coisas podem dar errado. Alguns dados podem estar corrompidos lá, ou pode haver um erro etc., etc. Para adicionar a esses drivers, em geral, corra o risco de causar um BSOD. O sistema de fallback do sistema operacional quando algo dá muito errado e ele precisa executar uma operação de desligamento de emergência para tentar minimizar ou evitar os danos. Um driver cuidadosamente codificado (espero) não fará isso, mas sempre há uma chance de erros. Inclusive nos procedimentos de desligamento de emergência.

Isso pode ser evitado com codificação cuidadosa e verificação dupla em tempo de execução.


3
Felizmente, os drivers de vídeo não são uma fonte significativa de BSODs há muito tempo. A Microsoft revisou completamente o modelo de driver no Windows NT 6.0 (Vista) e colocou grande parte do driver no modo de usuário; BSODs são causados ​​apenas por falhas no modo kernel. Quando o driver de vídeo no modo de usuário trava, a pior coisa que acontece é que o driver é redefinido - em um jogo D3D, você pode ter que lidar com uma perda de contexto e gastar um tempo recarregando recursos, mas no GL, às vezes, você pode se recuperar completamente transparente com isso . É necessária uma falha grave de nível baixo para obter um BSOD.
Andon M. Coleman

0

Resposta de uma palavra: SIM.

Resposta detalhada: Sim. Pode (em certas situações). Imagine que você escreva um programa que transfira drasticamente os dados para sua GPU para um loop infinito. É certo que ficará superaquecido. Agora, novamente, não é responsabilidade do seu sistema de refrigeração cuidar disso? Claro que é. Mas você também deve se lembrar que, o sistema de resfriamento também possui alguns limites. Se o calor produzido estiver fora da faixa de operação do seu sistema de refrigeração, ele dificilmente será útil. Não sei o que seu aplicativo faz, mas falando com a perspectiva de programadores, você pode escrever esses programas que levam a esse tipo de situação.


Até onde eu sei, tudo isso já foi dito. É isso que você quis dizer?
Anko

0
  1. A instalação de um driver incompatível com a placa real usada pode facilmente causar danos permanentes. De alguma forma, meu amigo conseguiu fazer isso através da reinstalação repetitiva do sistema operacional e da mudança física do disco rígido.

  2. Faça o seu PC ligar e desligar várias vezes. Não tenho certeza se isso pode causar falha, mas é muito possível. Enfim, não parece uma softwaremaneira muito de fazer isso.

  3. Manipule o nível de energia no sistema ativando e desativando dispositivos USB que consomem energia (exemplo: HDD externo que não utiliza sua própria energia). Fazer isso sempre torna meu teclado e mouse inutilizáveis ​​até a próxima reinicialização e (mais de 2 anos de uso diário de três HDDs dentro e fora) queimou várias células em um dos meus chips de RAM, resultando em um BSOD a cada 10-20 minutos.


11
Você está falando sobre coisas que podem ser feitas por software porque não tenho certeza?
NPS

WRT # 3, o trilho de 5V usado por USB é regulado pela fonte de alimentação independentemente do (s) trilho (s) de 12V, que são / são ainda regulamentados na placa-mãe e na placa gráfica para alimentar a CPU, GPU e memória do sistema. As placas-mãe costumam usar os fusíveis para limitar a corrente através das portas USB, o que poderia explicar os problemas do teclado / mouse quando os discos rígidos são conectados, se eles compartilham o mesmo fusível. A corrente de irrupção para girar o prato pode causar uma queda de tensão no trilho de alimentação USB, levando a um apagão no microcontrolador do teclado. Sua RAM com falha é quase certamente uma coincidência.
Bcrist 18/05/19

0

Minha experiência pessoal:

Eu costumava ter um Lenovo Thinkpad T61p com um Quadro FX570M construído em agosto de 2008. Esse lote era conhecido por ter GPUs defeituosas que um dia ou outro falhariam (a solda estava abaixo do ideal em alguns dos pinos da GPU).

Tudo ficou bem por cerca de 5 anos, até que eu executei o XCOM The Bureau (um jogo conhecido por não ter sido realmente otimizado), o laptop estava quente, os fãs em velocidade máxima e por cerca de uma hora de jogo congelou, mas não o normal congelamento .

Adivinha ?Desliguei e liguei o laptop, ele estava com os códigos de bipe relevantes do BIOS, indicando uma falha no vídeo.

Para responder à sua pergunta : sim (como outros já indicaram), um software pode definitivamente quebrar o hardware se o primeiro não estiver protegido de alguma forma ; se, por exemplo, o ventilador da GPU estiver desligado, ele certamente explodirá com 100% de chance de sucesso: D


Minha pergunta aborda o hardware com sistemas de refrigeração e segurança adequados e funcionais. Caso contrário, estamos apenas falando de hardware defeituoso, que provavelmente falhará com qualquer software.
NPS

0

Uma vez eu tinha uma placa de vídeo GeForce 4 MX 440 e queria jogar Prince of Persia: areias do tempo. Mas o jogo não foi lançado porque não conseguiu encontrar o suporte esperado para o Pixel Shader. Isso foi um pouco inesperado para mim, porque o príncipe da Pérsia: Warrior Within funcionou muito bem.

Então, no final, encontrei o analisador 3d ( http://www.tommti-systems.com/main-Dateien/files.html ) e forcei o jogo a rodar e joguei o jogo por vários dias. Depois de alguns dias, minha placa de vídeo quebrou - não exibia mais nada. Eu tinha o novo computador por cerca de 5-6 meses, então acho que forçar o jogo a rodar dessa maneira quebrou minha placa de vídeo :(


-1

Sim, eu quebrei alguns. Eu não corro mais aplicativos de cálculo de GPU em grade. Alguns aplicativos tendem a quebrá-los, especialmente quando a máquina entra no modo de suspensão, mas em situações normais quando os sopradores estão funcionando / o líquido de refrigeração está circulando, não deve haver problemas, a menos que o resfriamento seja sub-dimensionado.


O que você quer dizer com "modo de suspensão"? "Modo de suspensão" geralmente se refere à suspensão para RAM , um estado de energia do computador no qual apenas a Memória de Acesso Aleatório permanece energizada. Como isso quebraria uma placa gráfica?
Anko

@ Anko, pegue daqui. en.wikipedia.org/wiki/Sleep_mode
Anssi

OK, foi o que pensei que você quis dizer. Estou confuso com o raciocínio: quando os aplicativos são suspensos no modo de suspensão, como eles podem causar danos?
Anko

-2

Pode ocorrer um curto-circuito no cartão, no entanto, é muito improvável que isso aconteça porque o sistema está isolado até uma certa temperatura alta. Em alguns casos, o sistema termodinâmico da placa pode ser perturbado se estiver realmente próximo de outro sistema ou se estiver tocando outro material que não seja um sistema.


3
Como esse cenário seria causado por um aplicativo? Isso não parece abordar a questão.
Seth Battin

Eu acredito que você não está familiarizado com AND, OR, NOT portas lógicas
Orenrocco

5
E eu acredito que você errou o alvo, pela segunda vez.
Seth Battin

11
Não há comando de software sendShortCircuit, pois um curto-circuito seria um defeito na placa de vídeo. O software não seria responsável por isso. Esta pergunta é sobre se, por exemplo placas gráficas são classificados como "% de uso 100 para até 1s, 90% uso a longo prazo da média" e o software foi obrigado a não exceder a classificação
Richard Tingle

3
@ user3643191, não estamos atacando você; estamos apontando lugares onde sua postagem pode ser melhorada e esclarecida. Todos esses comentários serão eventualmente excluídos (por design); sua postagem é o que permanecerá. Você pode editar e melhorar sua postagem a qualquer momento. Aproveite a oportunidade para fazer uma resposta melhor. Depois de fazer isso, você provavelmente receberá alguns votos positivos (ou alguém poderá remover um voto negativo), esses comentários acabarão desaparecendo e sua resposta esclarecedora será educada nos próximos anos.
PotatoEngineer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.