Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 12624|Odpowiedź: 0

CUDA różni się od OpenCL

[Skopiuj link]
Opublikowano 22.04.2018 21:42:36 | | | |
Według informacji na stronie internetowej, krótka kompilacja różnic między CUDA a OpenCL. Proszę wskazać wszelkie błędy.

Dygresja: Test symulacyjny w Sandia National Laboratory w Stanach Zjednoczonych wykazał, że ze względu na ograniczenia mechanizmu przechowywania i przepustowości pamięci, procesory 16-rdzeniowe, 32-rdzeniowe, a nawet 64-rdzeniowe nie tylko nie mogą poprawić wydajności superkomputerów, ale mogą nawet prowadzić do znacznego spadku efektywności.

Czym jest OpenCL?

Jest to otwarty i darmowy standard programowania równoległego przeznaczony do ogólnych zastosowań dla heterogenicznych systemów zainicjowanych przez Apple i wspólnie produkowany przez wielu znanych producentów w branży, a także jest to środowisko programistyczne zintegrowane. Jest wygodny dla programistów do pisania wydajnego i lekkiego kodu dla serwerów wysokowydajnych obliczeń, systemów komputerowych oraz urządzeń przenośnych, a także jest szeroko stosowany w procesorach wielordzeniowych (CPU), jednostkach graficznych (GPU), architekturach komórkowych oraz innych procesorach równoległych, takich jak cyfrowe procesory sygnału (DSP), a także oferuje szerokie perspektywy rozwojowe w różnych dziedzinach, takich jak gry, rozrywka, badania naukowe i opieka medyczna.

Czym jest CUDA?

CUDA to architektura oparta na obliczeniach równoległych na kartach graficznych Nvidia. CUDA obejmuje głównie dwa aspekty: pierwszy to architektura zestawu instrukcji ISA; drugi sprzętowy silnik obliczeniowy; To tak naprawdę sprzęt i zestaw instrukcji. Innymi słowy, możemy myśleć o CUDA jako o architekturze podobnej do X86 lub komórki, ale opartej na GPU, a nie tradycyjnych CPU.




Czym właściwie jest OpenCL?

OpenCL to w rzeczywistości zupełnie nowe API do programowania równoległego systemów heterogenicznych, a OpenCL może wykorzystywać GPU do wykonywania niektórych zadań obliczeniowych równoległych.
OpenGL jest przeznaczony na grafy, natomiast OpenCL na obliczenia równoległe.
W trakcie tworzenia OpenCL wszystkie platformy techniczne to GPU NVIDIA, a w rzeczywistości OpenCL jest rozwijany na bazie platform GPU NVIDIA. Dodatkowo pierwsza wersja OpenCL również działała na kartach graficznych NVIDIA.
W zasadzie OpenCL jest technologią równoważną DirectX na platformie Windows. A właściwie jest to interfejs API łączący sprzęt i oprogramowanie. Pod tym względem jest podobny do OpenGL, ale OpenCL jest znacznie bardziej rozbudowany niż OpenGL i nie służy wyłącznie do grafiki 3D. Jeśli opiszesz to jednym zdaniem, rola OpenCL polega na uwolnieniu potencjału sprzętowego poprzez wywoływanie zasobów obliczeniowych procesora i GPU, aby program działał szybciej i lepiej.
Czym właściwie jest CUDA?

Architektura CUDA jest natywna, specjalnie zaprojektowana dla interfejsów obliczeniowych, a ta architektura sprzętowa, w tym zestawy instrukcji, stanowi kompletny zestaw architektur zaprojektowanych do tego typu obliczeń równoległych i heterogenicznych. Architektura CUDA obsługuje API, w tym OpenCL lub DirectX, a CUDA obsługuje także języki C, C++, Fortran, Java, Python i inne.



Jaki jest związek między OpenCL a CUDA?

Relacja między CUDA a OpenCL nie jest relacją konfliktową, lecz relacją inkluzywną. OpenCL to API, na pierwszym poziomie architektura CUDA jest wyższym poziomem, niezależnie od tego, czy jest to OpenCL, DX11 czy język C, obsługiwane są Fortran, DX11 computing. Jako programista, zazwyczaj rozumieją tylko te języki lub API i mogą używać wielu języków do tworzenia własnych programów, niezależnie od wybranego języka, pod warunkiem, że chcą wykorzystać moc obliczeniową GPU, mogą korzystać z CUDA do programowania na tej architekturze.
Różnice techniczne między OpenCL a CUDA są głównie odzwierciedlone w metodzie implementacji. CUDA oparta na języku C jest zapakowana w łatwy do napisania kod, więc nawet badacze nieznający konstrukcji układów mogą korzystać z narzędzi CUDA do pisania praktycznych programów. Chociaż OpenCL jest syntaktycznie bliski CUDA, kładzie większy nacisk na operacje bazowe, przez co jest trudniejsze, ale z tego powodu OpenCL może działać na różnych platformach.
CUDA to równoległa architektura obliczeniowa zawierająca architekturę zestawu instrukcji oraz odpowiadający jej silnik sprzętowy. OpenCL to interfejs programowania aplikacji (API) do obliczeń równoległych, a OpenCL to nowa ścieżka rozwoju programów CUDA, obok C for CUDA na architekturze NVIDIA CUDA.
Jeśli chcesz mieć większą kontrolę nad sprzętem, możesz skorzystać z API OpenCL do programowania, a jeśli niewiele wiesz o API, możesz też programować w CUDA C, czyli dwóch różnych sposobach programowania, które mają swoje podobieństwa i różnice. Ale jest trochę rzeczy, gdy rozwijane są języki OpenCL i CUDA C, w obliczeniach równoległych ich koncepcje są podobne, te dwa programy mają duże podobieństwa w programach, więc przenoszenie programów jest między sobą stosunkowo łatwe.


Język CUDA C jest ustawiony inaczej niż OpenCL, innymi słowy, używa innych osób. CUDA C to język wysokiego poziomu, który łatwo obsługują osoby nieprofesjonalne, które niewiele wiedzą o sprzęcie; OpenCL to interfejs do tworzenia aplikacji zorientowany na sprzęt, który daje programistom większą kontrolę nad sprzętem, a rozpoczęcie i tworzenie utrudnia się wtedy.
Nawyki korzystania programistów są również bardzo ważne – osoby używające języka C na platformie CPU X86 łatwo zaakceptują język C oparty na platformie GPU CUDA; Osoby przyzwyczajone do tworzenia grafiki w OpenGL będą bardziej przyjazne do OpenCL, a tworzenie programów komputerowych związanych z grafiką i wideo będzie bardzo łatwe na jego podstawie.






Poprzedni:HttpRuntime Cache odczytuje enkapsulację informacji o zbiorze cache
Następny:Dlaczego nie dać MB na ustawienie awatarów
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com