Parallel Thread Execution
Parallel Thread Execution (PTX) – niskopoziomowa maszyna wirtualna, język jej asemblera i model programowy procesora (ISA) dla kart graficznych firmy Nvidia obsługujących technologię obliczeniową CUDA. PTX stanowi uniwersalny, pośredni etap w translacji programów napisanych w językach wysokiego poziomu, np. C lub C++, na kod maszynowy zoptymalizowany dla konkretnych architektur GPU firmy Nvidia.
Do tłumaczenia programów z języków C i C++ na PTX wykorzystuje się specjalny kompilator (nvopencc), który opiera się na technologii Open64. Translacja kodów PTX na kod maszynowy może stanowić jedną z faz kompilacji (kompilator uruchamia specjalny translator, ptxas) lub zostać wykonany dopiero w chwili uruchomienia programu przez sterownik karty graficznej (tzw. kompilacja w locie, JIT). Efektem kompilacji programów w CUDA mogą być repozytoria kodów (ang. device code repositories) zawierające np. kod pośredni PTX w wersji 1.0 oraz jeden lub kilka kodów maszynowych przeznaczonych dla konkretnych procesorów. Dostępność kodu PTX w podstawowej wersji gwarantuje możliwość uruchomienia programu na dowolnym sprzęcie obsługującym PTX 1.0, a więc na wszystkich kartach graficznych obsługujących technologię CUDA, w tym na sprzęcie nowych, nieistniejących jeszcze generacji (producent gwarantuje zgodność wszystkich istniejących i przyszłych produktów z PTX 1.0). Z kolei dołączenie kodów maszynowych dla istniejących modeli kart graficznych eliminuje potrzebę kompilacji kodu PTX przez sterownik urządzenia i skraca w ten sposób czas uruchamiania programu.
Obecnie (sierpień 2011) najnowsza stabilna wersja PTX dla architektury Fermi ma numer 2.3 (PTX 2.3; 18 stycznia 2011); PTX dla wcześniejszych architektur ma numer 1.4 (PTX 1.4; 23 sierpnia 2010).
Cele PTX
Według zapewnień producenta, PTX realizuje następujące cele:
- Stanowi stabilny model programowy procesora (ISA) dla wielu generacji GPU.
- Umożliwia w programach kompilowanych z języków wysokiego poziomu osiągnięcie wydajności porównywalnej z wydajnością uzyskiwaną w programach pisanych bezpośrednio dla konkretnych GPU.
- Stanowi niezależny od sprzętu model programowy procesora (ISA) dla kompilatorów.
- Stanowi platformę dystrybucyjną kodu dla twórców aplikacji i bibliotek.
- Stanowi wspólny wyjściowy model programowy procesora (ISA) dla optymalizatorów generowanego kodu maszynowego
- Ułatwia ręczne kodowanie wysokowydajnych bibliotek, kerneli i testów architektur GPU
- Stanowi skalowalny model programowania obejmujący zarówno pojedyncze GPU, jak i ich działające równolegle klastry.
Bibliografia
- NVidia Compute PTX: Parallel Thread Execution. ISA Version 1.4, 12 czerwca 2009.
- NVidia Compute PTX: Parallel Thread Execution. ISA Version 2.1, 21 kwietnia 2010.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.