Wykorzystanie jednostek przetwarzania grafiki (tylko w systemieLinux, Windows)

Wydajność aplikacji Java™ można zwiększyć, odciążając niektóre funkcje przetwarzania od procesora (CPU) do jednostki przetwarzania grafiki (Graphics processing unit-GPU); mają zastosowanie określone wymagania sprzętowe i programowe.

Jednostka przetwarzania grafiki została zaprojektowana w celu optymalizacji przetwarzania równoległego. Jednostka GPU NVIDIA może potencjalnie mieć tysiące rdzeni, które mogą uruchamiać tę samą instrukcję w tym samym czasie, na przykład operować na każdym pikselu w obrazie. Dla porównania, procesor ma kilka rdzeni, które są idealne do przetwarzania szeregowego, wykonując różne instrukcje sekwencyjnie.

Jeśli aplikacja zawiera kod, który byłby korzystny dla przetwarzania równoległego, można uruchomić tę część kodu na GPU, a resztę kodu na procesorze. Za pomocą interfejsu API CUDA4J można określić w aplikacji dokładnie wtedy, gdy ma być używana jednostka GPU. Typy aplikacji, które mogą być odpowiednie dla tej technologii, to wysokowydajność aplikacji korporacyjnych i technicznych, takich jak duże obciążenia danych i analiz. Więcej informacji na ten temat zawiera sekcja Interfejs programistyczny aplikacji CUDA4J (tylko w systemieLinux, Windows).

Niektóre funkcje Java, takie jak sort, są szczególnie odpowiednie do przetwarzania GPU. Funkcja sort wymaga powtarzających się operacji na tablicach danych i może być przetwarzana na GPU szybciej niż procesor. Jednak w przypadku aplikacji Java, która ma korzystać z tego typu przetwarzania, tablica musi mieć wystarczającą wielkość, aby uzasadnić czas potrzebny do przeniesienia danych między CPU i GPU. Jeśli można dokładnie określić, kiedy można użyć jednostki GPU, można utworzyć aplikacje, które korzystają z klas produktu com.ibm.gpu w celu odciążania określonych zadań. Więcej informacji na temat tych klas zawiera sekcja Interfejs programistyczny aplikacji com.ibm.gpu (tylko w systemieLinux, Windows). Alternatywnie można pozwolić, aby wirtualna maszyna języka Java decydował o tym, kiedy przetwarzanie ma być przenoszone na jednostkę GPU, ustawiając właściwość systemową w wierszu komend. Aby włączyć tę funkcję, należy zapoznać się z sekcji Włączanie przetwarzania aplikacji w jednostce przetwarzania grafiki (tylko w systemieLinux, Windows).

Kompilator Just-In-Time (JIT) może również odciążać przetwarzanie na GPU. Więcej informacji na ten temat zawiera sekcja How the JIT compiler uses a GPU (Linux, Windows only).