Fühlen Sie sich frei, mich zu korrigieren, wenn irgendein Teil meines Verständnisses falsch ist.
Ich verstehe, dass GPUs eine Teilmenge der Anweisungen bieten, die eine normale CPU bietet, aber sie viel schneller ausführt.
Ich weiß, dass es Möglichkeiten gibt, GPU-Zyklen für nicht grafische Zwecke zu nutzen, aber es scheint (in der Theorie) eine Sprache zu sein, die Just In Time kompiliert das Vorhandensein einer geeigneten GPU erkennen und einen Teil der Arbeit an die GPU abladen könnte hinter den Kulissen ohne Code-Änderung.
Ist mein Verständnis naiv? Ist es nur eine Frage von es ist wirklich kompliziert und hat es einfach nicht getan?
Meines Wissens nach bieten GPUs ein Teilmenge der Anweisungen, die a normale CPU stellt sie zur Verfügung, führt sie aber aus viel schneller.
Es ist definitiv nicht so einfach. Die GPU ist hauptsächlich auf SIMD / Vektorverarbeitung zugeschnitten. Obwohl das theoretische Potenzial von GPUs heute den CPUs weit überlegen ist, können nur Programme, die von SIMD-Befehlen profitieren, effizient auf der GPU ausgeführt werden. Außerdem gibt es natürlich eine Leistungseinbuße, wenn Daten von der CPU zur GPU übertragen werden müssen, um dort verarbeitet zu werden.
Damit ein JIT-Compiler die GPU effizient verwenden kann, muss er in der Lage sein, Code zu erkennen, der parallelisiert werden kann, um von SIMD-Befehlen zu profitieren, und dann bestimmen muss, ob der Overhead durch die Übertragung von Daten von der CPU induziert wird Die GPU wird durch die Leistungsverbesserungen übergewichtig sein.
Tags und Links compilation jit theory gpu