Das Problem ist es nicht, mehrere Threads zu unterstützen. Es würde Dir einfach zu wenig bringen, 8 Cores statt 4 oder 2 anzusprechen, da die Hauptlast eh von der Grafikkarte übernommen wird.
Das ist pures Pseudo-Wissen.
Sämtliche Szenen werden in "Spielen" von der CPU vorgerendert und die CPU sagt der GPU was abzuarbeiten ist.
Den Flaschenhals CPU oder GPU hast du immer; auch bei APUs.
Noch dazu zählt die IPC Leistung wesentlich mehr und eine
REDUKTION von Threads um den Overhead (Timing) zu minimieren und die Stabilität zu erhöhen.
Umso mehr Threads laufen, desto schwieriger wird es diese zeitgleich zusammenzuführen.
Beispiel 4 Threads 16 ms CLOCK:
Thread 1 = 2 ms
Thread 2 = 2 ms
Thread 3 = 2 ms
Thread 4 = 4 ms
--------------------
Total 4 ms
Beispiel 16 Threads 16 ms CLOCK
Thread 1 = 0 ms
Thread 2 = 0 ms
Thread 3 = 2 ms
Thread 4 = 4 ms
...
Thread 16 = 2 ms
----------------------
Total 4 ms
Ohne Programmierkenntnisse rede bitte nicht über Code Splitting.
Parallelisierung ergibt schlichtweg nicht immer (manchmal schon!) Sinn.
Dazu gibt es programmiertechnische Grund
gesetze.
Wenn sich der 4 ms Thread (angenommen es handelt sich um den Hauptthread) im obigen Beispiel NICHT effizient aufteilen lässt dann bringen dir auch 3949489 Cores keine Leistungssteigerung.
Im Gegenteil - Mehr Threads können durch einen gestiegenen Speicher-Adressierungsaufwand sogar die Leistung vermindern.
Das ganze gilt für Echtzeitanwendungen (Zum Beispiel: Spiele) und nicht für "Bilderchen" die in einer X-beliebigen Reihenfolge gerendert werden wie zum Beispiel im Cinebench.
Warum glaubst du skalieren CPUs in NICHT Echtzeitanwendungen (Audio/Video etc.) fast zu 100%?
Weil die Threads schlichtweg nicht zeitgleich zusammengeführt werden müssen. Das ist der einzige Grund.
Das Hauptproblem liegt wie gesagt an einem zeitgleichen zusammenführen von mehreren Threads ... und da ist die Rechenleistung der GPU komplett irrelevant.
Die GPU wartet auf Daten von der CPU. Das ist auch bei der APU der Fall.