CUDA

CUDA
Autor Nvidia
Pierwsze wydanie 1.0 / 23.06.2007
Aktualna wersja stabilna 13.2.0
(9 marca 2026) [±]
Platforma sprzętowa GPU firmy Nvidia
System operacyjny GNU/Linux, Windows, macOS
Rodzaj biblioteka i środowisko programistyczne
Licencja własnościowa, freeware
Strona internetowa

CUDA (ang. Compute Unified Device Architecture) – opracowana przez firmę Nvidia uniwersalna architektura procesorów wielordzeniowych (głównie kart graficznych) umożliwiająca wykorzystanie ich mocy obliczeniowej do rozwiązywania ogólnych problemów numerycznych w sposób wydajniejszy niż w tradycyjnych, sekwencyjnych procesorach ogólnego zastosowania.

Architektura

Integralną częścią architektury CUDA jest oparte na języku programowania C środowisko programistyczne wysokiego poziomu, w którego skład wchodzą m.in. specjalny kompilator (nvcc), debugger (cuda-gdb, który jest rozszerzoną wersją debuggera gdb umożliwiającą śledzenie zarówno kodu wykonywanego na CPU, jak i na karcie graficznej), profiler oraz interfejs programowania aplikacji. Dostępne są również biblioteki, które można wykorzystać w językach Python, Fortran, Java, C# oraz Matlab. Pierwsze wydanie środowiska współpracowało z systemami operacyjnymi Windows oraz Linux. Od wersji 2.0 działa również z macOS.

Zalety

  • Język programowania oparty na językach C/C++, w tym pełna obsługa szablonów C++.
  • Model pamięci procesora ściśle odpowiadający architekturze sprzętowej, co umożliwia świadome, efektywne wykorzystywanie dostępnych zasobów GPU, w tym pamięci współdzielonej. Pamięć ta jest współdzielona przez wszystkie wątki w tzw. bloku (zwykle 128-512 wątków). Można jej używać jako programowalnej pamięci typu cache.
  • Kod uruchamiany na GPU może odczytywać i zapisywać dane z dowolnego adresu w pamięci GPU.
  • Pełna kompatybilność programów – napisany dziś program wykonywalny ma w przyszłości działać bez żadnych zmian na coraz wydajniejszych procesorach graficznych posiadających coraz większą liczbę rdzeni, rejestrów, pamięci operacyjnej i innych zasobów.
  • Dostępność na wszystkich kartach firmy NVIDIA począwszy od serii GeForce 8 w tym Quadro oraz Tesla[1].
  • Obsługa procesorów ARM (od wersji 6.5)
  • Obecnie nawet starsze laptopy często mają kartę graficzną zawierającą rdzenie CUDA(2018)[2].

Ograniczenia

  • CUDA korzysta z podzbioru języka C++. Nie można na przykład definiować statycznych zmiennych wewnątrz funkcji, a funkcje mogą mieć tylko stałą liczbę parametrów[3].
  • Dla liczb zmiennoprzecinkowych podwójnej precyzji (dostępnych w nowszych procesorach) istnieją pewne odstępstwa od standardu w zakresie zaokrąglania liczb.
  • Przepustowość i opóźnienia magistrali PCI-Express łączącej CPU i GPU mogą być wąskim gardłem w przypadku przesyłania dużej ilości danych.
  • CUDA jest dostępna jedynie dla kart graficznych produkowanych przez firmę NVIDIA

Zastosowania

W grach komputerowych moc obliczeniową można wykorzystać do obliczeń fizyki w grach, ale CUDA jest również wykorzystywana do przyspieszania obliczeń w takich dziedzinach jak biologia, fizyka, kryptografia i inne obliczenia inżynierskie. Dla potrzeb tego segmentu Nvidia opracowała specjalny procesor graficzny Tesla.

Niektóre projekty przetwarzania rozproszonego BOINC wykorzystują do obliczeń architekturę CUDA[5][6].

Wersja 3.x

Kolejna wersja architektury CUDA (CUDA 3.0) obsługuje procesory graficzne o architekturze Fermi. Cuda 3.0 zapewnia pełniejsze wsparcie dla konstrukcji języka C++ (m.in. jednolitą przestrzeń adresową dla wskaźników, obsługę dziedziczenia, a od wersji 3.1 – funkcji rekurencyjnych i wskaźników na funkcje). Cuda 3.0 umożliwia wykonywanie kilkunastu kerneli jednocześnie na jednym GPU (o architekturze Fermi). Wraz z nową generacją procesorów Nvidia udostępniła wsparcie dla środowiska Visual Studio 2008[7].

Zobacz też

Przypisy

  1. Lista kart graficznych wspieranych przez CUDA.
  2. The NVIDIA® GeForce® 310M GPUs delivers great performance and amazing multimedia capabilities. | GeForce [online], www.geforce.com [dostęp 2018-12-05] (ang.).
  3. CUDA C Programming Guide.
  4. OptitTex CAD/CAM/CAE. NVIDIA. [dostęp 2020-07-10]. [zarchiwizowane z tego adresu (2020-07-10)].
  5. Liczenie na GPU (lista projektów i kart).
  6. GPU computing – BOINC.
  7. NVIDIA Parallel Nsight.

Linki zewnętrzne

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.

  1. 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:
  2. 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.
  3. 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.
  4. 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.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Kembali kehalaman sebelumnya