CUDA (компьютер)
CUDA (Compute Unified Device Architecture) нь Nvidia компани 2006 онд бүтээсэн тусгай зориулалтын параллель тооцооллын платформ ба програмчлалын интерфейс (API) юм. Энэ нь програм хангамжид тодорхой төрлийн график картнууд (GPU) ашиглан ерөнхий зориулалтын хурдан тооцоолол хийх боломжийг олгодог. Энэ аргыг GPU дээрх ерөнхий зориулалтын тооцоолол гэж нэрлэдэг. Анх танилцуулагдахдаа CUDA гэдэг нь Compute Unified Device Architecture гэсэн товчлол байсан ч Nvidia компани дараа нь энэ товчлолыг түгээмэл ашиглахаа больсон.
CUDA нь GPU-ийн виртуал зааврын багц болон параллель тооцооллын элементүүдэд шууд хандах боломж олгодог програм хангамжийн давхарга юм. Үүнд драйвер, гүйцэтгэх цөмүүдээс гадна компилер, сангууд болон хөгжүүлэгчдэд зориулсан хэрэгслүүд багтдаг бөгөөд эдгээр нь програмыг хурдан ажиллуулахад тусалдаг.
CUDA нь C, C++, Fortran, Python, Julia зэрэг програмчлалын хэлүүдтэй ажиллах зориулалттай. Энэ нь параллель програмчлалын мэргэжилтнүүдэд GPU-ийн нөөцийг ашиглахад хялбар болгодог бөгөөд өмнөх Direct3D, OpenGL зэрэг API-уудаас ялгаатай нь график програмчлалын өндөр ур чадвар шаарддаггүй. CUDA-г идэвхжүүлсэн GPU-ууд нь OpenMP, OpenACC, OpenCL зэрэг програмчлалын хүрээ, платформуудыг дэмждэг.
Үндсэн ойлголт
[засварлах | кодоор засварлах]График карт (GPU) нь тусгай зориулалтын компьютерийн процессор бөгөөд бодит цагийн өндөр нягтралтай 3D график боловсруулах, тооцооллын өндөр ачаалалтай үүрэг гүйцэтгэдэг. 2012 он гэхэд GPU-ууд өндөр параллель олон цөмт систем болж, том хэмжээний өгөгдлийг үр дүнтэй боловсруулах боломжтой болсон. Энэ бүтэц нь том хэмжээний өгөгдлийг параллель боловсруулдаг алгоритмуудад ерөнхий төв процессороос (CPU) илүү үр дүнтэй.
Жишээ нь:
- Криптографийн хэш функцууд
- Машин сургалт
- Молекулын динамикийн симуляци
- Физикийн хөдөлгүүрүүд
2000 онд Стэнфордын их сургуульд Иан Бак 32 ширхэг GeForce карт ашиглан 8K тоглоомын систем бүтээсэн бөгөөд дараа нь DARPA-гаас GPU дээр ерөнхий зориулалтын параллель програмчлал хийх төсөлд санхүүжилт авсан. Тэрээр Nvidia-д элсэж, 2004 оноос хойш CUDA хөгжүүлэлтийг хариуцаж байна. Jensen Huang нь Nvidia GPU-уудыг шинжлэх ухааны тооцоололд зориулсан ерөнхий тоног төхөөрөмж болгох зорилготой байсан. CUDA 2007 онд гарсан бөгөөд 2015 оноос эхлэн гол анхаарлаа нейрон сүлжээнүүд рүү шилжүүлсэн.