OpenCL

OpenCL

OpenCL logo.svg
Temel veri

geliştirici Khronos Grubu
Yayın yılı 28 Ağustos 2009
Mevcut  sürüm 3.0
( 30 Eylül 2020 )
Mevcut ön sürüm 3.0 geçici
(27 Nisan 2020)
işletim sistemi platform bağımsız
Programlama dili C , C ++
kategori Programlama arayüzü
Lisans farklı
www.khronos.org/opencl

OpenCL ( İngilizce Açık omputing L anguage ) bir bir arayüz düzgün olmayan için paralel bilgisayar , z. B. ana , grafik veya dijital sinyal işlemcileri ile donatılmıştır . Bu, programlama dili "OpenCL C" yi içerir. OpenCL, orijinal olarak Apple tarafından mevcut grafik işlemcilerin performansını grafik olmayan uygulamalar için kullanılabilir hale getirmek için geliştirilmiştir .

AMD, IBM, Intel ve Nvidia şirketleriyle işbirliği içinde, ilk taslak hazırlandı ve sonunda Apple , standardizasyon için Khronos Grubu'na sundu. OpenCL 1.0 spesifikasyonu 8 Aralık 2008'de yayınlandı. 1.1, Haziran 2010'da bunu izledi. Şartname 1.2, 16 Kasım 2011'de 1.0 ile geriye doğru uyumlu kalan iyileştirmelerle izlendi. İki yıl sonra, 18 Kasım 2013'te OpenCL 2.0 spesifikasyonu tanıtıldı.

OpenCL 1.0, ilk olarak 28 Ağustos 2009'da Apple tarafından Mac OS X Snow Leopard 10.6 işletim sistemiyle piyasaya sürüldü; ilgili programlar ("çekirdek") çalışma zamanında çeşitli mevcut OpenCL özellikli cihazlara dağıtılabilir . Şu anda, donanıma bağlı olarak, Apple tarafından yalnızca OpenCL 1.0 ila 1.2 desteklenmektedir. Diğer bir ana destekçi, CUDA ile NVidia ile rekabet halinde olan önceki AtiStream'li AMD'dir . CUDA için birincil desteğine rağmen, Nvidia ayrıca kullanıcı talebi nedeniyle OpenCL 1.2'yi, daha sonra 2.0'dan bazı unsurlarla ve şimdi de 2021'de 3.0'ı destekliyor.

OpenCL 2.0 ile uyumlu donanım, Khronos Group'a göre güncellenmiş sürücülerle birlikte daha yüksek sürüm 2.1 ve 2.2'yi de destekler.

OpenCL 2.1 resmi olarak Kasım 2015'te piyasaya sürüldü. OpenCL 2.1'deki belirleyici bir yenilik, SPIR'in (Standart Taşınabilir Ara Temsil) halefi olan SPIR-V'nin entegrasyonudur. SPIR-V, grafik gölgelendiricileri ve işlemci çekirdekleri için yerel desteğe sahip bir ara dildir. Derleyici zincirinin çeşitli işlem birimleri arasında bölünmesini sağlar. Bu, yüksek seviyeli dillerin, çeşitli donanım bileşenlerine çeviri konusunda endişelenmenize gerek kalmadan SPIR-V aracılığıyla heterojen mimariyi ele alabileceği anlamına gelir. OpenCL'ye ek olarak SPIR-V, Vulkan Graphics API'de de kullanılır .

OpenCL 2.2 resmi olarak Mayıs 2017'de yayınlandı. Duyuru, en önemli değişiklik olarak OpenCL C ++ Kernel Language'in OpenCL'ye entegrasyonundan bahsediyor . Açık Hesaplama Dilinin bir parçası olarak C ++ 14 standardının statik bir alt kümesi olarak tanımlanan çekirdek dili, sınıfları, şablonları, lambda ifadelerini ve diğer yapıları içerir. Mayıs 2018'de, Spir-V'nin başlıklarında hata düzeltmeleri ve güncellemeler içeren bir "bakım güncellemesi" yayınlandı.

Gelecekte, OpenCL mümkün olduğunca Vulkan ile birleşmeli ve böylece daha da geniş bir destek almalıdır. Bu, Android cihazlarda bir Vulkan ortamı için OpenCL C çekirdek kodunun büyük bir bölümünü derlemek için açık kaynak derleyici clspv'yi kullanan Apple'ın Premiere Rush'ında gösterildi. Son olarak, OpenCL Next 2019 için yeni bilgilerle duyuruldu ve ayrıca OpenCL "yol haritasının" Vulkan'dan bağımsız olduğunu, bu nedenle iki projenin tamamen birleşmeyeceğini vurguladı.

OpenCL 3.0 (geçici) 27 Nisan 2020'de yayınlandı. Nihai statüye 30 Eylül 2020'de ulaşıldı.

IWOCL 2021'de bazı isteğe bağlı uzantılara sahip sürüm 3.0.7 duyuruldu.

mimari

Platform modeli

Bir OpenCL sistemi, bir ana bilgisayar ve bir veya daha fazla OpenCL cihazından oluşur. Bir aygıt, bir veya daha fazla bağımsız bilgi işlem biriminden oluşur (İngilizce "hesaplama birimi", kısaca "CU"). Çok çekirdekli bir işlemci durumunda bunlar, birlikte merkezi işlem birimini oluşturan mevcut çekirdekler ve grafik kartı için gölgelendiricilerdir . İşlem birimi olan bölünmüş bir ya da daha fazla parçaya işleme elemanlarının ( kısaca “PE”). Ana bilgisayar, çekirdekleri (programlar, Almanca çekirdekler) çalışma zamanında mevcut cihazlara dağıtır.

İki tür çekirdek vardır:

OpenCL çekirdeği
Bunlar OpenCL C programlama dilinde yazılmıştır. OpenCL C, ISO C99'u temel alır ve paralel işleme için işlevleri ve veri türlerini içerecek şekilde genişletilmiştir.
Yerel çekirdek
Bu çekirdekler isteğe bağlıdır ve uygulamaya özeldir.

OpenCL çekirdekleri çalışma zamanında OpenCL derleyicisi tarafından derlenir ve ardından bir OpenCL cihazı tarafından yürütülür. Bu, geliştirme sırasında programın daha sonra hangi donanımda çalıştırılacağını bilmenin gerekli olmadığı anlamına gelir.

Hesaplamalar, çalışma süresi boyunca sözde iş öğeleri tarafından gerçekleştirilir. Bu çalışma öğeleri, çalışma öğelerinin adreslenebildiği bir, iki veya üç boyutlu bir ızgarada düzenlenir. İş öğeleri, senkronizasyonun mümkün olduğu ve paylaşılan bir belleğe erişebilen çalışma grupları halinde gruplanır. Bu nedenle, bireysel bir iş öğesi, koordinatı aracılığıyla ve göreceli olarak, onu içeren çalışma grubunun koordinatı ve çalışma grubu içindeki koordinat yoluyla mutlak olarak adreslenebilir.

Bellek modeli

Bellek modeli

OpenCL'de beş tür depolama vardır:

  • Ana bilgisayar belleği : Ana bilgisayar belleği , yürütme programının normal ana belleğidir. OpenCL çekirdeği ona doğrudan erişemez.
  • global hafıza ( global hafıza ): Bu, OpenCL çekirdeğinin hafızasıdır. Bir çekirdeğin her örneği, tüm alana rastgele erişime sahiptir.
  • sabit bellek ( sabit bellek ): Sabit bellek, çekirdek örneklerinin yalnızca bu belleğin okuduğu küresel bellekten farklıdır, ancak değiştiremez.
  • yerel depolama ( yerel bellek ): Bir grup çekirdek örneği, tipik olarak 16 kiB yerel belleğe sahip küçük bir alana rasgele erişime sahiptir. Her grubun yalnızca üyelerin erişebileceği kendi alanı vardır.
  • Özel bellek ( özel bellek ): Bu bellek ayrılmış bir çekirdek Örneğidir. Diğer çekirdek örnekleri ve yürütme programı bu belleğin içeriğine erişemez.

OpenCL C

OpenCL C dili, ISO C99 sözdizimine dayanmaktadır, paralel işleme için ek veri türleri ve işlevleri içerecek şekilde genişletilmiştir, ancak başka yerlerde de sınırlandırılmıştır (aşağıya bakın). Bu nedenle , C'nin bir üst kümesi değildir , ancak her iki dilin de pek çok ortak noktası vardır.

C99 veri türlerine ek olarak , OpenCL C aşağıdaki veri türlerini destekler:

  • yarım: IEEE 754r'ye göre 16 bit kayan noktalı sayılar .
  • Vektör veri türleri: char , uchar , short , ushort , int , uint , long , ulong ve float veri türleri 2, 4, 8 ve 16 elemanlı vektörler olarak mevcuttur. Elemanların sayısı, veri türünün adına eklenir, örn. Örneğin : uchar4 , float8 veya int16 . OpenCL 1.1 ile üç elemanlı vektörler de tanıtıldı.
  • image2d_t: İki boyutlu bir görüntü.
  • image3d_t: Üç boyutlu bir görüntü.
  • sampler_t: Bir görüntünün nasıl örneklendiğini tanımlayan bir örnekleyici .
  • event_t: bir olay işleyicisi.

Aşağıdaki veri türleri, OpenCL'nin sonraki sürümleri için de ayrılmıştır:

  • bool n : Doğruluk değerlerine sahip bir vektör.
  • double, double n : 64-bit kayan noktalı sayılar ve vektörler. Double için bir uzantı zaten var, ancak OpenCL 1.0 için desteği gerekli değil.
  • yarım n : 16 bitlik kayan noktalı sayılara sahip bir vektör.
  • dörtlü, dörtlü n : 128-bit kayan noktalı sayılar.
  • karmaşık {yarım | şamandıra | çift ​​| quad}: Değişen hassasiyet derecelerine sahip karmaşık sayılar .
  • karmaşık {yarım | şamandıra | çift ​​| quad} n : Değişen doğruluk derecelerine sahip karmaşık sayıların vektörleri.
  • hayali {yarım | şamandıra | çift ​​| quad}: değişen doğruluk derecelerine sahip hayali sayılar .
  • hayali {yarım | şamandıra | çift ​​| quad} n : farklı kesinliğe sahip sanal sayıların vektörleri.
  • {float | double} n x m : 32 veya 64 bit hassasiyetli n x m matrisler.
  • long double, long double n : Kayan nokta sayıları ve en azından double hassasiyetinde ve en fazla quad hassasiyetinde vektörler .
  • uzun uzun, uzun uzun n : 128-bit işaretli tamsayılar ve vektörler.
  • işaretsiz uzun uzun, işaretsiz uzun uzun n : 128-bit işaretsiz tamsayılar ve vektörler.

Aritmetik işlemler ( +, -, *, /, %, ++, --), karşılaştırma işlemleri ( >, >=, ==, !=, <= <), bit &, |, ^, ~operatörleri ( ) ve mantıksal operatörler ( &&, ||) hem skaler veri türleri hem de vektörler için tanımlanır. Vektörlere uygulanırlarsa, işlem bileşen bileşen gerçekleştirilir. Burada OpenCL, GLSL gibi bilinen gölgelendirici dilleriyle aynı şekilde davranır .

Ayrıca gölgelendirici dillerinden ödünç alınmış olan, aynı zamanda bileşen bazında gerçekleştirilen bir dizi matematiksel işlevdir, örneğin sinüs, kosinüs, kök, minimum, maksimum vb.

C ile karşılaştırıldığında, OpenCL C, diğerleri arasında aşağıdaki noktalarda sınırlandırılmıştır:

  • İşlev işaretçisi yok
  • Yineleme mümkün değildir.
  • Alanlar ("diziler") değişken uzunluklara sahip olmamalıdır.

OpenGL ve DirectX nesnelerinin kullanımı

OpenCL, dokular gibi OpenGL veya DirectX'ten (yalnızca Windows altında) nesnelere doğrudan erişebilir . Bu, örneğin verileri kopyalamak zorunda kalmadan OpenCL'nin dokuları değiştirmek için kullanılabileceği anlamına gelir.

Uzantılar

OpenGL gibi OpenCL de üreticiye özel uzantılar aracılığıyla ek işlevlerle desteklenebilir. Önceden tanımlanmış uzantı örnekleri şunlardır:

  • Çift duyarlıklı kayan noktalı sayılar (64-bit kayan noktalı sayılar, cl_khr_fp64 ).
  • Yarı kesinlikli kayan nokta vektörleri (16 bit kayan noktalı sayılar, cl_khr_fp16 ).
  • Kayan nokta işlemleri için yuvarlama türünü tanımlayın ( cl_khr_select_fprounding_mode ).
  • 3B görüntülerde yazma ( cl_khr_3d_image_writes ).

Uygulamalar

OpenCL, herhangi bir işletim sistemi ve donanım platformu için uygulanabilir - tıpkı OpenGL ve OpenAL gibi . Bu, CPU'ların, GPU'ların, DSP'lerin ve hücre işlemcisinin teknik özelliklerinin tamamıdır. Azaltılmış gereksinimleri olan gömülü sistemler için de bir teknik özellik vardır .

  • AMD: den OpenCL uygulama AMD arayüzü onların GPGPU aracılığıyla GPU'ları kullanımını sağlayan ATI Yayın Linux ve Windows için SSE3 ve CPU'lar. GCN 4 (RX 400 / RX 500) ve GCN 5 (Vega) nesillerinin mevcut grafik kartları OpenCL 2.0'ı tam olarak desteklemektedir. Bu aynı zamanda eski nesil GCN 2 ve GCN 3 grafik kartları için de geçerlidir . Eski mimariler GCN 1 ve Terascale 2 OpenCL 1.2'yi destekler. OpenCL 1.1 desteklenmiştir gelen R700 serisi . Windows altında OpenCL 2.1, sürücü 19.1.1'den de desteklenir. Burada hangi donanımın bundan yararlanabileceği belirsizdir. Vega çipleri şu anda yalnızca OpenCL 2.0'a kadar çalışabilir. OpenCL 3.0, tüm GCN ve RDNA kartları için desteklenir. OpenCL 2.x'in isteğe bağlı öğeleri, donanıma ve sisteme bağlı olarak daha önce olduğu gibi farklı şekilde desteklenir.
  • Intel OpenCL SDK: Intel ayrıca ticari bir SDK'ya sahiptir (GPU için 2.0 ve Gen7'den CPU için 2.1 ).
  • LLVM: Nvidia, Intel ve Apple mesafede The OpenCL uygulamaları teknik dayanmaktadır LLVM Apple bir teknoloji kullanır onun sürüm 10.5 den MacOS içinde JIT - OpenGL derleyici ve ayrıca iOS'taki.
  • Nvidia: Nvidia , Linux, Windows ve macOS altında GPGPU arayüzü CUDA için bir OpenCL uygulaması sunuyor . Tesla yongalarının nesli G80 ve GT200 ( Nvidia Tesla ), 341.95 sürümündeki en son sürücülerle OpenCL 1.1'i destekler. Fermi, OpenCL 1.1'i destekler. OpenCL 1.2 (Kepler ve Maxwell GPU yongaları ile) en fazla desteklenir. Önceki 370 serisi sürücülerle, yeni Pascal GPU, hem GeForce 10 serisinde hem de Quadro ve Tesla serisinde yalnızca OpenCL 1.2'yi destekler. 378.66 sürücü sürümü ile OpenCL 2.0, önemli işlevlerde beta olarak ilk kez destekleniyor. Kepler'in 3.0 sürümü, 2021'den beri en son sürücülerle desteklenmektedir. Daha önce olduğu gibi, 2.x'teki isteğe bağlı öğeler yalnızca kısmen desteklenmektedir.

Açık kaynak:

  • Intel Beignet: Intel, Linux ve Android için "Beignet" açık kaynak projesini kurdu. En son Kasım 2016'da, OpenCL 1.2'nin (Ivy Bridge'den) uzun vadeli desteğinin ardından OpenCL 2.0 desteği açıklandı. Mevcut sürüm, optimizasyona ihtiyaç duyan isteğe bağlı OpenCL 2.0 ile 1.3.2'dir.
  • Intel Compute Süre (NEO): kod adı NEO altında, yeni bir açık kaynak sürücü dan donanım için geliştirilmiştir Skylake (Broadwell dan da şimdi) OpenCL 2.1 desteği ile. OpenCL 2.2, yakında "Hesaplama Çalışma Zamanı" nı takip edecektir. OpenCL 3.0 şu anda Tigerlake için geliştiriliyor.
  • ROCm: OpenCompute girişiminin bir parçası olarak AMD, açık kaynak topluluğu ile işbirliği içinde ROCm projesini başlattı. ROCm, PCI Express 3.0 (AMD Ryzen veya Intel Haswell) ile GCN 3 nesil grafik kartlarından ve CPU'lardan çalışır. OpenCL 2.0'ın işlevselliği desteklenmektedir. Sürüm 1.8'den bu yana, daha düşük bilgi işlem gücüne sahip AMD GCN 3 grafik kartlarına sahip PCIe 2.0 işlemciler de deneysel olarak desteklenmektedir. ROCm sürüm 2.4, TensorFlow 2.0 için bazı performans iyileştirmeleri ve desteğe sahiptir. Sürüm 2.5, rocThrust ile Thrust kitaplığını destekler. Sürüm 3.5, OpenCL 2.2'yi destekler. Mevcut sürüm 4.1.1'dir.
  • POCL: Taşınabilir OpenCL (ağırlıklı olarak OpenCL 1.2, OpenCL 2.0), Nvidia GPU'ların kullanımı için deneysel Nvidia Cuda arka uçlu sürüm 1.0. Bu, Nvidia donanımında Mesa'dan çok daha fazla seçenekle Açık Kaynak OpenCL'yi etkinleştirir. Optimizasyon ve yazılım eksikliğinden dolayı, performans AMD Windows uygulamasına kıyasla 1: 5 ila 1:10 faktörüyle bazen zayıftır: POCL 1.1 ile bazı durumlarda büyük ölçüde iyileştirilmiştir ve SPIR deneysel olarak SPIR ile desteklenir- V. Sürüm 1.2 ile HWOC 2.0 ve şimdi OpenCL 1.2 tam olarak desteklenmektedir. 1.3 sürümüyle macOS desteklenir. Sürüm 1.4 daha fazla SPIR ve SPIR-V'yi destekler. Sürüm 1.5 artık LLVM 10.0'ı da destekliyor. Sürüm 1.6, OpenCL'nin CUDA ile emülasyonunda büyük ilerlemeler gösterir. Nvidia sürücüsü kadar hızlı. Bu amaçla, Power PC 8/9 donanımı ve LLVM 11 yeniden desteklenmektedir. Ambalaj artık daha esnektir. Manuel optimizasyon ile POCL, Intel işlem çalışma zamanıyla aynı seviyededir. POCL 1.7 artık Clang / LLVM 12'yi de destekliyor ve ilk OpenCL 3.0 işlevleri uygulandı.
  • GalliumCompute (Clover): Clover ile, 2011 ortasından beri GPL altında Linux için bir uygulama geliştirilmektedir, bu da LLVM'ye dayanmaktadır ve bir CPU veya dolaylı olarak Mesa 3D aracılığıyla  bir grafik kartı kullanması amaçlanmıştır. Clover, Mesa projesine entegre edilmiştir ve GalliumCompute'un bir parçasıdır. OpenCL 1.0'dan 1.2'ye kadar bazı testler henüz geçilmedi. TGSI'den NIR'a geçişle birlikte, AMD (RadeonSI ve R600 ile) ve nVidia (Nouveau ile) grafik kartları için açık kaynaklı sürücülerle kullanılabilmesi için Mesa'daki OpenCL yeniden daha güçlü bir şekilde geliştiriliyor. Ayrıca, OpenCL'nin çeşitli seviyelerinde görüntü desteği yoktur.
  • Shamrock: Shamrock, Android ARM V7 + için Clover'ın bir yan ürünüdür. OpenCL 1.2 tamamen desteklenmektedir. Khronos testi en son 1.2'ye kadar olan örnekler için "OpenCL 2.0 Samples Suite" ile geçildi.
  • triSYCL: SYCL ile ücretsiz OpenCL 2.2 uygulaması. Durum: az gelişme, tamamlanmadı

Sertifikalı ürünlerin bir listesi Khronos'ta mevcuttur.

Uygulamalar gibi, bunlar da Khronos Uyumluluk Test Paketi (CTS) testlerini geçmelidir .

Uygulama yazılımı

İşlem yoğun programların çoğu, aşağıdakileri hızlandırmak için OpenCL kullanır:

Grafik programları

3B oluşturucu

3B oluşturma için bir yazılım OpenCL'yi destekler
  • Autodesk Maya
  • Blender Blender'ın geliştiricileri, OpenCL'nin mevcut durumunu can sıkıcı hatalar ve AMD ve Intel'den şu anda desteklenen GPU'ların tutarsız uygulamasıyla "durmuş" olarak sınıflandırır ve Blender sürüm 3.0'da OpenCL desteği kaldırılır. Sürüm 2.93 LTS, OpenCL'yi destekleyen son sürüm olacaktır.
  • LuxCoreRender
  • Houdini (yazılım)
  • almondbulber : 3B fraktallar oluşturmak için yazılım

Ses

  • CUETools: CUETools'tan CUERipper ile, FLAC dosyaları, modern grafik kartlarında OpenCL kullanımıyla FLACCL işlevi ile WAV formatından FLAC'a özellikle hızlı bir şekilde dönüştürülebilir. Normal CPU ve sabit sürücülere kıyasla hızlı grafik kartlarına ve SSD veri depolama cihazlarına bağlı olarak, rip işleminin bu bölümünde 10 ila 100 kat hızlanma mümkündür.
  • CN24: anlamsal analiz aracı

Video

  • El freni
  • FFmpeg
  • Final Cut Pro X
  • RealFlow Hybrido2
  • Sony Catalyst ailesi
  • MAGIX Vegas (daha önce Sony Vegas)
  • AlchemistXF
  • MotionDSP'den vReveal
  • ArcSoft'tan Total Media Theater (TMT)
  • C4D

simülasyon

  • Gelişmiş Simülasyon Kitaplığı
  • 2D alanda dalgaları simüle etmek için SecondSpace OpenCL programı.
  • PATRIC Hücrede Partikül Kodu
  • Bullet: OpenCL kullanarak GPU katı gövde simülasyonu
  • AM57x'te Monte-Carlo simülasyonu
  • Intel Demo Gerçek Zamanlı Sığ Su Simülasyonu
  • Intel kod örnekleri
  • Sürüm 5.1'den GROMACS moleküler simülasyonları 2021 sürümünden itibaren, OpenCL kullanımdan kaldırılmış olarak sınıflandırılmıştır ve gelecekte SYCL ile değiştirilecektir.
  • FEM: SIEMENS NX Nastran 9.1+ ve Simulia Abaqus 6.11+
  • Sinir ağları: clgen: Derin Öğrenme Programı Oluşturucu
  • Sinir ağları: nengo_ocl Nengo ile beyin simülasyonları
  • Şifre çözme: JohnTheRipper

Kitaplıklar

  • ACL: AMD Hesaplama Kitaplıkları
  • AMGCL: AMG cebirsel çoklu ızgara çözücü
  • ArrayFire: JIT derleyicili (açık kaynak) kullanımı kolay bir API ile paralel bilgi işlem içindir
  • Bolt: Hızlandırılmış veri paralel uygulamaları oluşturmak için STL uyumlu kitaplık
  • Boost.Compute: OpenCL için GPU / Paralel C ++ Kitaplığı
  • Klor: OpenCL 1.2+ kolay kullanımı için C ++ 11 kitaplığı
  • CLBlast: ayarlanmış clBlast
  • clMAGMA: kütüphane benzer MAGMA projesi, lineer cebir ve OpenCL liman LAPACK ama Multicore + GPU Sistemleri
  • DeepCL: Sinirsel Eğitim Kütüphanesi
  • GEGL-OpenCL: OpenCL ile Gimp GEGL
  • GpyFFT: clFFT ile FFT için Python Wrapper
  • MOT: Maastricht Optimizasyon Araç Kutusu
  • Neandertal: Clojure için BLAS ve LAPACK uygulaması
  • Netlib BLAS daha BLAS'ta
  • OpenCLGA: PYOpenCL ile genetik algoritmalar
  • PARALÜRLÜK
  • random123: Sayaç tabanlı rastgele sayı üreteçlerinin (CBRNG'ler) koleksiyonu
  • VexCL: vektör ifade şablon kitaplığı (MIT lisansı)
  • ViennaCL: Viyana Teknoloji Üniversitesi'nin ücretsiz açık kaynaklı doğrusal cebir kütüphanesi
  • HIP: OpenCL ve Cuda için Açık Kaynak C ++ Araç Seti
  • Coriander Projesi: CUDA'nın CUDA-on-CL ile OpenCL 1.2'ye Dönüştürülmesi
  • TF-Coriander projesi: OpenCL 1.2 ile Tensorflow

Dil birleştirme

  • ClojureCL: Clojure ile paralel OpenCL 2.0
  • dcompute: D'yi yerel olarak çalıştırın
  • OpenCL bağını edinin
  • OpenCLAda: Ada'yı OpenCL'ye Bağlama
  • OpenCL.jl: Julia Bağlamaları
  • PyOpenCL: Python kuplajı
  • JavaScript: WebCL

İnternet linkleri


Öğreticiler

  • OpenCL. Erlangen Üniversitesi, arşivlenmiş orijinal üzerinde 4 Mart 2016 ; 6 Ocak 2019'da erişildi .

Bireysel kanıt

  1. www.khronos.org . 27 Nisan 2020.
  2. Khronos OpenCL API Kayıt Defteri Belirtimi ve Başlık Dosyaları
  3. http://developer.amd.com/wordpress/media/2012/10/opencl-1.0.48.pdf
  4. https://www.khronos.org/files/opencl-quick-reference-card.pdf
  5. https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf
  6. https://www.khronos.org/files/opencl-1-1-quick-reference-card.pdf
  7. https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf
  8. https://www.khronos.org/files/opencl-1-2-quick-reference-card.pdf
  9. https://www.khronos.org/registry/OpenCL/specs/opencl-2.0.pdf
  10. https://www.khronos.org/files/opencl20-quick-reference-card.pdf
  11. "Heise: Mac'te OpenCL " Heise: 2014'te Mac'te OpenCL
  12. "Apple Desteği: Mac bilgisayarlarda OpenCL " yalnızca macOS bilgisayarlarda OpenCL 1.0 ila 1.2, OpenCL 2.x yok (Nisan 2016 itibarıyla)
  13. http://developer.amd.com/wordpress/media/2013/01/Introduction_to_OpenCL_Programming-Training_Guide-201005.pdf
  14. http://developer.download.nvidia.com/compute/DevZone/docs/html/OpenCL/doc/OpenCL_Programming_Guide.pdf
  15. OpenCL 2.1'e İngilizce genel bakış içeren "Khronos OpenCL Genel Bakış 2.1" PDF
  16. https://www.heise.de/developer/meldung/Khronos-aktualisiert-Spezkunden-fuer-OpenCL-2-1-und-SPIR-V-1-0-2922960.html
  17. https://www.khronos.org/registry/OpenCL/specs/opencl-2.1.pdf
  18. https://www.khronos.org/files/opencl21-reference-guide.pdf
  19. https://www.heise.de/developer/meldung/Khronos-veroeffentlicht-vorlaeufige-Spezifikation-fuer-OpenCL-2-2-3177422.html
  20. https://www.khronos.org/news/permalink/khronos-releases-opencl-2.2-with-spir-v-1.2
  21. https://www.khronos.org/blog/opencl-2.2-maintenance-update-released
  22. https://www.khronos.org/registry/OpenCL/specs/2.2/pdf/OpenCL_API.pdf
  23. https://www.khronos.org/files/opencl22-reference-guide.pdf
  24. https://www.pcper.com/reviews/General-Tech/Breaking-OpenCL-Merging-Roadmap-Vulkan
  25. http://www.phoronix.com/scan.php?page=news_item&px=IWOCL-2017-OpenCL
  26. https://github.com/google/clspv
  27. Vulkan Update SIGGRAPH 2019. , S.24 .
  28. https://www.phoronix.com/scan.php?page=article&item=siggraph-2018-khr&num=2
  29. https://www.phoronix.com/scan.php?page=article&item=opencl-30-spec&num=1
  30. https://www.khronos.org/registry/OpenCL/specs/3.0-unified/pdf/OpenCL_API.pdf
  31. https://www.khronos.org/files/opencl30-reference-guide.pdf
  32. https://www.iwocl.org/wp-content/uploads/k03-iwocl-syclcon-2021-trevett-updated.mp4.pdf
  33. ATI Stream ve OpenCL'de AMD ( İnternet Arşivinde 9 Ağustos 2009 tarihli Memento ) (1 Ekim 2009)
  34. https://www.amd.com/en/support/kb/release-notes/rn-pro-win-18-7-1
  35. https://www.geeks3d.com/20190111/amd-adrenalin-2019-edition-19-1-1-released-with-better-fortnite-support-and-vulkan-1-1-96/
  36. ^ ARM, OpenCL Destekli Yeni Grafik İşlemcisini Tanıttı . ( Memento Kasım 14, 2010 , Internet Archive ) 10 Ekim 2010
  37. Intel, “Sandy Bridge” ile OpenCL çoğunluğuna atlıyor . 13 Ağustos 2010
  38. ^ S3 Graphics, Chrome 5400E yerleşik grafik işlemcisini piyasaya sürdü . 27 Ekim 2009
  39. VIA, Gelişmiş VN1000 Grafik İşlemcisi Getirir . ( Memento Aralık 15, 2009 , Internet Archive ) 10 Aralık 2009
  40. Linux on Power için OpenCL Geliştirme Kiti (30 Ekim 2009)
  41. http://www.phoronix.com/scan.php?page=news_item&px=Intel-OpenCL-SDK-Linux-2016R2
  42. https://software.intel.com/en-us/articles/whats-new-code-builder-2016-r2
  43. https://software.intel.com/en-us/whats-new-code-builder-2016-r3
  44. https://software.intel.com/en-us/blogs/2017/07/28/2017-opencl-whats-new
  45. Chris Lattner: LLVM'nin Apple'da harika bir kullanımı: OpenGL yığını . ( Memento içinde 4 Kasım 2006 tarihli Internet Archive ) 15 Ağustos 2006 (LLVM baş geliştiricisi, Apple çalışanı)
  46. Nvidia'dan OpenCL'ye (28 Eylül 2009)
  47. http://de.download.nvidia.com/Windows/Quadro_Certified/341.95/341.95-win8-win7-winvista-quadro-grid-release-notes.pdf
  48. https://streamcomputing.eu/blog/2017-02-22/nvidia-enables-opencl-2-0-beta-support/
  49. https://www.geeks3d.com/20210330/nvidia-geforce-465-89-graphics-driver-released-vulkan-1-2-168-opencl-3-0-resizable-bar/
  50. https://www.freedesktop.org/wiki/Software/Beignet/
  51. http://www.phoronix.com/scan.php?page=news_item&px=Intel-Beignet-Android
  52. http://www.phoronix.com/scan.php?page=news_item&px=Beignet-Birthday-CL2
  53. https://github.com/intel/compute-runtime/releases
  54. Michael Larabel: Intel Açık Kaynaklar LLVM Grafik Derleyicisi, OpenCL 2.1+ ile Hesaplama Çalışma Zamanı. phrononix, 16 Şubat 2018, erişim tarihi 22 Nisan 2018 .
  55. Michael Larabel: Radeon ROCm 2.4, TensorFlow 2.0 Uyumluluğu, Infinity Fabric Desteği ile Piyasaya Sürüldü. İçinde: Phoronix. 8 Mayıs 2019, 8 Mayıs 2019'da erişildi .
  56. https://www.phoronix.com/scan.php?page=news_item&px=Radeon-ROCm-2.5- Yayınlandı
  57. https://github.com/RadeonOpenCompute/ROCm/tree/roc-3.5.0
  58. https://www.phoronix.com/scan.php?page=news_item&px=Radeon-ROCm-3.5- Yayınlandı
  59. http://portablecl.org/docs/html/features.html#
  60. http://portablecl.org/cuda-backend.html
  61. https://www.phoronix.com/scan.php?page=article&item=pocl10-epyc-xeon&num=1
  62. http://portablecl.org/pocl-1.0.html
  63. http://portablecl.org/pocl-1.1.html
  64. http://portablecl.org/pocl-1.2.html
  65. https://github.com/pocl/pocl/wiki/OpenCL-1.2-missing-features
  66. https://github.com/pocl/pocl/issues?q=milestone%3A1.2+is%3Aclosed
  67. https://github.com/pocl/pocl/releases
  68. http://portablecl.org/pocl-1.3.html
  69. http://portablecl.org/pocl-1.4.html
  70. http://portablecl.org/pocl-1.5.html
  71. http://portablecl.org/pocl-1.6.html
  72. https://www.iwocl.org/wp-content/uploads/30-iwocl-syclcon-2021-baumann-slides.pdf
  73. http://portablecl.org/pocl-1.7.html
  74. Clover projesinin web sitesi , Clover Geliştirici Blog
  75. https://www.x.org/wiki/Events/XDC2013/XDC2013TomStellardCloverStatus/XDC2013TomStellardCloverStatus.pdf
  76. https://mesamatrix.net/
  77. https://s3.amazonaws.com/connect.linaro.org/lca14/presentations/LCA14-412-%20GPGPU%20on%20ARM%20SoC%20session.pdf
  78. https://git.linaro.org/gpgpu/shamrock.git/about/
  79. https://github.com/triSYCL/triSYCL
  80. https://www.khronos.org/conformance/adopters/conformant-products#opencl
  81. https://github.com/KhronosGroup/OpenCL-CTS
  82. http://www.amd.com/de-de/solutions/professional/hpc/opencl
  83. https://www.khronos.org/news/permalink/gimp-2.8-rc-1-includes-opencl-acceleration
  84. http://www.tomshardware.de/photoshop-cs6-gimp-aftershot-pro-opencl-opengl,testberichte-241066-5.html
  85. https://www.phoronix.com/scan.php?page=news_item&px=More-GEGL-OpenCL-Support
  86. https://wiki.gimp.org/wiki/Roadmap
  87. http://www.amd.com/en-us/press-releases/Pages/amd-and-adobe-creative-suite-6-2012apr23.aspx
  88. http://www.tomshardware.de/photoshop-cs6-gimp-aftershot-pro-opencl-opengl,testberichte-241066-6.html
  89. ^ ImageMagick: Mimarlık. Erişim tarihi: August 7, 2015 .
  90. http://www.imagemagick.org/script/opencl.php
  91. http://www.agisoft.com/downloads/system-requirements/
  92. http://cgpress.org/archives/cgreviews/photoscan-review/2
  93. http://www.darktable.org/2012/03/darktable-and-opencl/
  94. Arşivlenmiş kopya ( İnternet Arşivi'nde 2 Mayıs 2016 tarihli Memento )
  95. http://www.phoronix.com/scan.php?page=article&item=darktable-opencl-gpu&num=1
  96. http://www.phoronix.com/scan.php?page=article&item=darktable-22-amdnv&num=1
  97. http://www.blurate.com/
  98. http://www.halcon.com/
  99. http://www.tomshardware.de/photoshop-cs6-gimp-aftershot-pro-opencl-opengl,testberichte-241066-12.html
  100. https://github.com/smistad/FAST
  101. https://www.iwocl.org/wp-content/uploads/17-iwocl-syclcon-2021-smistad-slides.pdf
  102. https://github.com/Khanattila/KNLMeansCL
  103. http://ufo-core.readthedocs.io/en/latest/using/index.html
  104. http://semiaccurate.com/2012/06/11/amd-and-autodesk-speed-up-maya-with-opencl/
  105. http://streamcomputing.eu/blog/2013-12-28/professional-consumer-media-software-opencl/
  106. http://developer.amd.com/community/blog/2015/07/10/collaboration-and-open-source-at-amd-blender-cycles/
  107. https://www.heise.de/news/Blender-3-Kuenftige-Cycles-X-Engine-des-Open-Source-Renderers-ohne-OpenCL-6035005.html
  108. https://wiki.luxcorerender.org/LuxMark
  109. CPU Core i7 ile dönüştürme karşılaştırması ve FLACCL ile farklı GPU'lar
  110. https://github.com/cvjena/cn24
  111. https://handbrake.fr/news.php?article=27
  112. Heise: OpenCL ile FFmpeg
  113. http://support.apple.com/en-us/HT202239
  114. http://streamcomputing.eu/blog/2013-12-28/professional-consumer-media-software-opencl/
  115. http://streamcomputing.eu/blog/2013-12-28/professional-consumer-media-software-opencl/
  116. http://streamcomputing.eu/blog/2013-12-28/professional-consumer-media-software-opencl/
  117. http://www.sonycreativesoftware.com/de/
  118. http://www.vegascreativesoftware.com/de/
  119. https://sam.com/products/alchemist-xf-%E2%80%93-highest-quality-file-based-format-and-framerate-conversion-software/c-24/p-228
  120. http://www.tomshardware.com/reviews/opencl-simhd-vreveal,3122-11.html
  121. http://www.tomshardware.de/opencl-simhd-vreveal,testberichte-240965.html
  122. http://www.tomshardware.de/opencl-simhd-vreveal,testberichte-240965-3.html
  123. http://asl.org.il/
  124. http://web-docs.gsi.de/~sappel/diplomarbeit_jutta_fitzek.pdf
  125. http://www.multithreadingandvfx.org/course_notes/GPU_rigidbody_using_OpenCL.pdf
  126. http://bulletphysics.org/wordpress/
  127. http://www.ti.com/lit/ug/tiduar9/tiduar9.pdf
  128. https://www.khronos.org/assets/uploads/developers/library/2011_GDC_OpenCL/Intel-OpenCL-Water-Sim_GDC-Mar11.pdf
  129. https://software.intel.com/sites/default/files/managed/2c/79/intel_ocl_shallow_water_win.zip
  130. https://software.intel.com/en-us/intel-opencl-support/code-samples
  131. http://manual.gromacs.org/documentation/5.1/install-guide/index.html#opencl-gpu-acceleration
  132. https://github.com/StreamComputing/gromacs
  133. https://www.iwocl.org/wp-content/uploads/22-iwocl-syclcon-2021-alekseenko-slides.pdf
  134. http://www.cadplace.de/Hardware/Hardware-allgemein/OpenCL-bietet-Simulationsperformance-fuer-Nastran-und-Abaqus
  135. https://www.amd.com/Documents/abaqus-solution-sheet.pdf
  136. https://www.amd.com/Documents/nastran-solution-sheet.pdf
  137. Arşivlenmiş kopya ( İnternet Arşivi'nde 14 Ekim 2016 tarihli Memento )
  138. https://github.com/ChrisCummins/clgen
  139. https://github.com/nengo/nengo_ocl
  140. https://github.com/magnumripper/JohnTheRipper
  141. http://techcrunch.com/2014/03/19/webcl-will-soon-let-web-developers-harness-the-power-of-multi-core-gpus-and-cpus-from-the-browser /
  142. http://techcrunch.com/2014/03/19/webcl-will-soon-let-web-developers-harness-the-power-of-multi-core-gpus-and-cpus-from-the-browser /
  143. Arşivlenmiş kopya ( İnternet Arşivi'nde 16 Kasım 2016 tarihli Memento )
  144. https://github.com/clMathLibraries/clBLAS
  145. https://github.com/clMathLibraries/clSPARSE
  146. https://github.com/clMathLibraries/clFFT
  147. https://github.com/clMathLibraries/clRNG
  148. https://github.com/ddemidov/amgcl
  149. http://arrayfire.com/
  150. Arşivlenmiş kopya ( İnternet Arşivi'nde 16 Mart 2015 tarihli Memento )
  151. https://github.com/boostorg/compute
  152. https://github.com/Polytonic/Chlorine
  153. https://github.com/CNugteren/CLBlast
  154. http://icl.cs.utk.edu/magma/software/view.html?id=207
  155. Arşivlenmiş kopya ( İnternet Arşivi'nde 29 Nisan 2016 tarihli Memento )
  156. https://github.com/hughperkins/DeepCL
  157. https://github.com/OpenCL/GEGL-OpenCL
  158. https://github.com/geggo/gpyfft
  159. https://github.com/cbclab/MOT
  160. https://github.com/uncomplicate/neanderthal
  161. http://www.netlib.org/blas/index.html
  162. https://github.com/PyOCL/OpenCLGA
  163. http://www.paralution.com/
  164. http://www.thesalmons.org/john/random123/releases/latest/docs/index.html
  165. https://github.com/ddemidov/vexcl
  166. http://viennacl.sourceforge.net/
  167. https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP
  168. http://www.phoronix.com/scan.php?page=news_item&px=CUDA-On-CL-Coriander
  169. http://www.iwocl.org/wp-content/uploads/iwocl2017-hugh-perkins-cuda-cl.pdf
  170. https://github.com/hughperkins/tf-coriander
  171. https://github.com/uncomplicate/clojurecl
  172. https://github.com/libmir/dcompute
  173. https://github.com/tonyrog/cl
  174. https://github.com/flyx/OpenCLAda
  175. https://github.com/JuliaGPU/OpenCL.jl
  176. https://github.com/pyopencl/pyopencl