Насколько я понимаю, графические процессоры предлагают
подмножество инструкций, которые
нормальный процессор обеспечивает, но выполняет их
намного быстрее.
Это определенно не так просто. Графический процессор предназначен главным образом для SIMD / векторной обработки. Таким образом, даже несмотря на то, что теоретический потенциал графических процессоров в настоящее время значительно превосходит процессоры, только те программы, которые могут извлечь выгоду из инструкций SIMD, могут эффективно выполняться на графическом процессоре. Кроме того, существует, конечно, снижение производительности, когда данные должны передаваться из ЦП в ГП для обработки там.
Таким образом, чтобы JIT-компилятор мог эффективно использовать графический процессор, он должен уметь обнаруживать код, который можно распараллелить, чтобы извлечь выгоду из инструкций SIMD, а затем должен определить, вызваны ли накладные расходы, вызванные передачей данных из ЦП в GPU будет перевесить улучшения производительности.