Czy kompilatory JIT JVM generują kod, który wykorzystuje wektorowe instrukcje zmiennoprzecinkowe?

Powiedzmy, że wąskim gardłem mojego programu Java jest naprawdę kilka wąskich pętli do obliczania wielu produktów kropek wektorowych. Tak, wyprofilowałem, tak, to wąskie gardło, tak, to ważne, tak, tak właśnie wygląda algorytm, tak, uruchomiłem Proguard, by zoptymalizować kod bajtowy itd.

Praca polega zasadniczo na produktach dot. Tak jak ja, mam dwafloat[50] i muszę obliczyć sumę produktów parowanych. Wiem, że zestawy instrukcji procesora służą do wykonywania tego rodzaju operacji szybko i luzem, takich jak SSE lub MMX.

Tak, prawdopodobnie mogę uzyskać do nich dostęp pisząc kod natywny w JNI. Wywołanie JNI okazuje się dość drogie.

Wiem, że nie możesz zagwarantować kompilacji lub braku kompilacji JIT. Ma ktośzawsze słyszałem o kodzie generującym JIT, który używa tych instrukcji? a jeśli tak, to czy jest coś o kodzie Java, który umożliwia jego kompilację w ten sposób?

Prawdopodobnie „nie”; warto zapytać.

questionAnswers(8)

yourAnswerToTheQuestion