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"?
Respostas:
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.
fonte
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.
fonte
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.
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)
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.
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.
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á:
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
Um driver personalizado (ou de buggy) com recursos de limitação desativados ou danificados. Dificuldade: Normal
Um firmware personalizado com recursos de redução de relógio desativados ou quebrados. Dificuldade: Difícil
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.
fonte
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.
fonte
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.
fonte
Sim pode.
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.
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ê.)
Isso pode ser evitado com codificação cuidadosa e verificação dupla em tempo de execução.
fonte
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.
fonte
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.
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
software
maneira muito de fazer isso.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.
fonte
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
fonte
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 :(
fonte
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.
fonte
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.
fonte
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