OpenCL Çərçivəsi: Doğru?

Açıqlama: Dəstəyiniz saytın işini davam etdirməyə kömək edir! Bu səhifədə tövsiyə etdiyimiz bəzi xidmətlər üçün bir müraciət haqqı qazanırıq.


OpenCL və ya Açıq Hesablama Dili, yalnız müxtəlif kompüter sistemlərində işləyə biləcək tətbiqetmələr yaratmaq üçün hazırlanmış bir proqram çərçivəsidir. Bir sıra açıq mənbəli tətbiqlərə sahib olan çarpaz platforma, paralel proqramlaşdırma tətbiqetmələrini inkişaf etdirmək üçün açıq bir standartdır.

Əslində, OpenCL kodlayıcılara istehsalçıdan, prosessorun texniki xüsusiyyətlərindən, qrafik vahidindən və ya digər aparat komponentlərindən asılı olmayaraq istənilən cihazda işləyə biləcək tətbiqlər yaratmağa imkan yaratmaq üçün hazırlanmışdır. Bu, bir geliştiricinin Windows PC-də bir proqram qura biləcəyini və bir Android telefonunda, Mac OS X kompüterində və ya hər hansı digər paralel emal cihazında işləyəcəyini göstərir. Əlbəttə ki, bu cihazların hamısı OpenCL-i dəstəklədikləri və müvafiq tərtibatçı və iş vaxtı kitabxanasına sahib olduqlarını təmin etdi.

OpenCL tətbiqetmələrini inkişaf etdirmək üçün istifadə olunan proqramlaşdırma dili C99 (C proqramlaşdırma dilinin əvvəlki rəsmi tərifi) əsasında qurulmuş OpenCL C-dir. OpenCL C, CPU, GPU və hardware sürətləndiriciləri də daxil olmaqla bir sıra aparat və cihazları proqramlaşdıra bilər.

Tarix

OpenCL əvvəlcə Apple Inc tərəfindən hazırlanmış və sonra bir neçə əsas aparat istehsalçısının məlumatları ilə təmizlənmiş və qeyri-kommersiya təşkilatı olan Khronos Group-a təklif edilmişdir. Khronos Qrupu, OpenCL standartlarını yekunlaşdırmaq üçün bir neçə əsas texnologiya satıcılarının fəal iştirakı ilə açıq standartlar komitəsini yaratdı.

Texniki standartlar 2008-ci ilin sonlarında tamamlandı və 2009-cu ildə Apple Mac OS X Qar Bəbiri ilə OpenCL 1.0 buraxdı. 2008 və 2009-cu illər ərzində OpenCL rəsmi olaraq AMD, NVIDIA və IBM tərəfindən qəbul edildi.

2010 və 2011-ci illərdə bir sıra yeni xüsusiyyətlər və yeniliklər təqdim edildi və 2013-cü ildə, digər şeylərlə yanaşı, ortaq virtual yaddaşa dəstək, iç içə paralellik və Android üçün bir müştəri sürücüsünün uzantısı da daxil olmaqla OpenCL 2.0 buraxıldı. 2015-ci ildə çıxan bir sonrakı buraxılış, Açıq CL 2.1, OpenCL C nüvəsinin dilini OpenCL C ilə əvəz etdi++.

Onlayn Resurslar

Bu gün kompüter proqramlaşdırmasında ən böyük tendensiyalardan biri üçün hazırlanmış və açıq mənbə olduğundan, OpenCL-in geniş istifadəçi və mentorlar birliyinə sahib olması təəccüblü deyil..

  • Khronos Resurs Səhifəsi: OpenCL-in saxlanmasına cavabdeh olan Khronos Qrupu, müxtəlif tətbiqetmə, dil bağlamaları və OpenCL proqramçıları üçün mövcud olan bir çox kitabxana və çərçivə haqqında məlumat daxil olmaqla, inkişaf etdiricilər üçün geniş mənbələrin siyahısını tərtib etmişdir. Bu sayt eyni zamanda onlayn təlim və təlimatların geniş siyahısını da özündə birləşdirir.
  • İstinad Kartları: Bu lazımlı istinad vərəqələri, bir API bələdçisi, sinif diaqramı, ortaq virtual yaddaş əmrləri və mövcud proqram obyektlərinin siyahısı, funksiyalarda qurulmuş məlumat növləri və daha çox daxil olmaqla OpenCL-də proqramlaşdırmaq üçün lazım olan hər şeyi ehtiva edir..
  • Intel OpenCL forumları: bu forum saytına əsasən proqramlaşdırma məsləhətini axtaran, ən yaxşı təcrübələri müzakirə edən və fikir mübadiləsi aparan qurulmuş OpenCL hazırlayıcıları ziyarət olunur..

Dərsliklər

OpenCL üçün bir neçə onlayn dərs mövcuddur, bəziləri açıq mənbə icması tərəfindən yaradılmışdır, digərləri də OpenCL standartına töhfə verən bir çox hardware istehsalçıları tərəfindən hazırlanmışdır. OpenCL inkişaf etmiş bir proqramlaşdırma vasitəsi olduğundan, əksəriyyəti tətbiqetmənin inkişafı və adətən C / C bilikləri ilə bağlı əvvəlki təcrübə əldə edirlər.++.

  • CodeProject’in OpenCL Təlimatı: bu onlayn tutorial seriyası OpenCL layihəsinə geniş yer verir, OpenCL inkişafını təmin etmək üçün müvafiq proqram təminatını və OpenCL proqramlaşdırmasının bütün əsas sahələri üçün fərdi dərsləri təqdim edir. Buraya bir neçə nümunə və məlumat üçün əlavə bağlantılar daxildir.
  • CMSoft OpenCL Təlimatı: CMSoft həm ümumi OpenCL təlimatı, həm də hər hansı bir OpenCL uyğun GPU-da işləyəcək ümumi fotoşəkil filtrləmə alqoritminin tətbiqi, videoda rəng izləmə, və matrisləri çoxaltmaq üçün GPU-nu necə istifadə etmək olar.
  • Intro OpenCL Tutorial: AMD-də bir hardware memarı tərəfindən hazırlanan bu dərslik yeni OpenCL proqramçıları üçün yazılmış və kodlaşdırma nümunələri çox təqdim edərkən OpenCL əsasları ilə gəzir.

Kitablar

Nisbətən yeni bir çərçivə olaraq, OpenCL-də yalnız bir neçə kitab var və bir çoxu hazırkı versiyadan əvvəl yazılmışdır, yəni inkişaf etdiricilər üçün mövcud olan bəzi xüsusiyyətləri əhatə etməyəcəkdir. Bununla belə, hətta köhnə mətnlər çərçivə və istifadəyə yaxşı bir nəzər salır. Ən son inkişafların təqdimatını yuxarıda sadalanan bir çox onlayn mənbələrdən asanlıqla əldə etmək olar.

  • David Kaeli tərəfindən hazırlanan OpenCL 2.0 ilə Heterojen Hesablama və s: bu mətn həm OpenCL standartını, həm də paralel proqramlaşdırmanın ümumi konsepsiyasını əhatə etmək məqsədi daşıyır. Paylaşılan virtual yaddaş, optimallaşdırma texnikası, diskussiya və müxtəlif kompüter sistemlərində işin necə yayılması kimi mövzuları araşdırır. Buraya nümunə kodu ilə yanaşı bir neçə nümunə araşdırması da daxildir.
  • Munshi, və s. Tərəfindən açıq kitab proqramlaşdırma bələdçisi: bu kitab işləyən inkişaf etdiricilər üçün xüsusi olaraq yazılmışdır. 1.1 versiyası üçün yazılmış ən erkən OpenCL dərsliklərindən biri olmaqla yanaşı, bəzi təkmilləşdirmələri əhatə etmir. Bununla birlikdə, hələ də OpenCL arxitekturası və terminologiyaları, əsas proqramlaşdırma xüsusiyyətləri və OpenCL C. üçün dil dərsləri haqqında effektiv bir baxış təqdim olunur. Bu mətnə ​​bir neçə nümunə araşdırması, nümunələr və onlayn mənbə kodu da daxildir.
  • RayCLond Tay tərəfindən hazırlanan OpenCL Paralel Proqramlaşdırma İnkişafı Kılavuzu: Bu mətn bir dildə təsirli bir şəkildə öyrənmək üçün həm nəzəriyyəni, həm də praktik tətbiqləri başa düşməyiniz lazım olan bir yanaşma tələb edir. Öyrənməni iki hissəyə bölür. Kitabın birinci yarısı OpenCL və paralel proqramlaşdırmanın əsaslarını əhatə edir. İkinci yarı, fərqli paralel proqramlaşdırma texnikalarını nümayiş etdirən əsas alqoritmlərin araşdırılmasıdır.
  • Banner və Bhattacharyya tərəfindən nümunə ilə OpenCL Proqramlaşdırma: Bu kitab paralel proqramlaşdırma və OpenCL əsas anlayışlarını nümayiş etdirmək üçün çox sadə nümunələrdən istifadə edərək OpenCL proqramlaşdırmasına “asan” bələdçi olmaq məqsədi daşıyır..

Nəticə

İyirmi il əvvəl, kompüter istifadəçilərinin böyük əksəriyyəti eyni əməliyyat sistemlərini işlədikdə və CPU / GPU səhnəsində yalnız bir neçə qrup şirkət üstünlük təşkil edərkən, birdən çox platforma boyunca proqram qurma imkanı bir çoxumuzun lüks bir şey idi ‘ t ehtiyac. Ancaq mobil texnologiyaların işə düşməsi və Apple və Android-in yüksəlməsi ilə yaxın zamanlarda yenidən bazar payı səviyyəsinə sahib olan hər hansı bir istehsalçı görməyəcəyik. Bunun əvəzinə proqram təminatçılarının bugünkü heterojen mühitə uyğunlaşması lazımdır.

OpenCL bu keçiddə böyük bir addımdır. Hər bir texnologiya dəyişən üçün proqramlaşdırma əvəzinə, inkişaf etdiricilər platformalara çatan kodu yarada bilərlər. Bir neçə hardware və proqram spesifikasiyası üçün proqramlaşdırmaq üçün bir dil, bir çərçivə, bir mühit.

Əlavə oxu və mənbələr

Kodlaşdırma və geliştirici mənbələri ilə əlaqəli daha çox proqramlaşdırma təlimatları, dərs vəsaitləri və infoqrafikalarımız var:

  • C Developer Resursları: işə başlayın və C proqramlaşdırma qabaqcıl sahələrinə keçin.
  • Kakao və Kakao Touch Giriş: Mac OS X və iOS üçün tətbiqetmələr yaratmaq üçün API məlumat əldə edin.
  • Java Giriş, necə öyrəniləcək və mənbələr: əksər cihazlarda mövcuddur, Java çox sayda platforma üçün kod istəsəniz əla bir dildir..

Hansı kodu öyrənməlisiniz?
Hansı kodu öyrənməlisiniz?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map