OpenCL مخفف عبارت Open Computing Language است ، بستری است برای برنامههایی که قرار است بر سکوهای ناهمگن با تکیه بر سیپییوها و جیپییوها و سایر پردازندهها اجرا شوند. اپنسیال دارای یک زبان (بر پایهٔ C99) برای نوشتن kernelها (توابعی که در دستگاههای OpenCL اجرا میشوند بهعلاوه رابطهای برنامهنویسی برای تعریف و پس از کنترل بستر استفاده شوند را دارا است. OpenCL چندپردازندگی را با استفاده از روشهای وظیفه محور یا task-based و داده محور یا data-based پشتیبانی میکند.اپنسیال توسط هر دو شرکت AMD/ATI و Nvidia پذیرفته شدهاست. در طراحی اپنسیال، مقدار زیادی از رابطهای پردازشی با CUDA و رقیب آن، مایکروسافت دایرکتکامپیوت به اشتراک گذاشته است.
OpenGL
یک رابط برنامهنویسی نرمافزار چندسکویی برای رندرینگ دوبعدی و سهبعدی است. این رابط برنامهنویسی معمولاً برای تعامل با پردازشگر گرافیکی و بهدستآوردن رندرینگ شتابیافته توسط سختافزار استفاده میشود.اپنجیال مخفف Open Graphic Library (کتابخانهٔ گرافیکی باز) است ولی اپنجیال خود به هیچوجه یک کتابخانهٔ نرمافزاری نیست و نرمافزار متنباز نیز به حساب نمیآید (چون حاوی هیچ کدی نیست)؛ اوپنجیال، تنها استانداردی باز برای توصیف یک رابط گرافیکی است که توسط شرکتهای متعددی توسعه دادهشده و میتواند توسط درایورهای گرافیک، سیستمعاملها و نرمافزارهای مختلف پیادهسازی شود.اوپنجیال توسط شرکت سیلیکون گرافیکز از سال ۱۹۹۱ توسعه یافت و در سال ۱۹۹۲ منتشر شد و بهصورت گسترده در طراحی به کمک رایانه، واقعیت مجازی، مصورسازی، بصریسازی اطلاعات، شبیهسازهای پرواز و بازیهای ویدئویی بهکار گرفتهشد. اوپنجیال توسط سازمان کنسرسیوم ناسودبر تکنولوژی Khronos Group مدیریت میشود.Khronos Group آخرین ورژن اوپن جی ال را در سال ۲۰۱۷ به مناسبت ۲۵ سالگی اوپن جی ال منتشر کرد و در حال حاضر ولکان به عنوان نسل جدید اوپن جی ال در حال توسعه میباشد.
واحد پردازش گرافیکی یا GPU :
واحد پردازش گرافیکی یا به اختصار GPU ابزاری اختصاصی برای رندر کردن گرافیکی (بهطور طبیعی به نظر رسیدن تصویر) در کامپیوترهای شخصی، ایستگاههای کاری، یا در کنسولهای بازی است. این واحد گاهی اوقات واحد پردازش بصری یا VPU نیز نامیده میشود. ویژگیهای واحدهای پردازش گرافیکی جدید برای پردازش و ارائه دادن کارهای دیداری (گرافیکی)، آنها را بسیار کارآمدتر از واحدهای پردازش مرکزی یا CPU در پردازش الگوریتمهای پیچیده کردهاست.در واقع واحد پردازش گرافیکی همانند واحد پردازش مرکزی Central Processing Unit در کامپیوتر است ولی وظیفه اصلی آن پردازش اطلاعات مرتبط با تصاویر است. یک GPU معمولاً بر روی کارتهای گرافیکی قرار میگیرد، اگرچه کارتهای گرافیکی غیر حرفهای مستقیماً بر روی بُرد مادر به صورت (OnBoard) قرار میگیرند. GPU ابزاری است شامل تعدادی عملگر ابتدایی گرافیکی، که باعث میشود نسبت به CPU در خلق تصاویر بر صفحه نمایشگر بسیار سریعتر عمل کنند. رایجترین عملگرها برای گرافیک دو بعدی کامپیوترها شامل عملگر بیت بلیت است که معمولاً در سختافزارهای مخصوص یک "Biltter" نامیده میشود. این عملگرها برای کشیدن مستطیل، مثلث، دایره و قوس بکار میروند. پردازندههای گرافیکی جدید، پردازش گرافیک سه بعدی را نیز در رایانهها انجام میدهند.
واحد پردازش مرکزی یا CPU :
سی پی یو یا central processing unit یا همان پردازنده مرکزی، پردازنده اصلی، یا فقط پردازنده، یک مدار الکترونیکی است که دستورالعمل هایی را اجرا میکند که تشکیل دهنده یک برنامه کامپیوتری هستند. واحد پردازنده مرکزی، اعمال اصلی حسابی، منطقی، کنترل و ورودی-خروجی یا input/output را انجام می دهد. این اعمال توسط دستورالعملهای برنامه مشخص میشوند. آنچه که ذکر شد تفاوت بسیاری با اجزای خارجی نظیر حافظه اصلی و مدار ورودی- خروجی و پردازنده های اختصاصی نظیر واحد پردازنده گرافیکی دارد.
فرم، طراحی، و پیاده سازی CPU ها در طول زمان تغییر کرده است، اما عملیات پایه ای آنها تقریباً بدون تغییر باقی مانده است. اجزای اصلی یک CPU عبارتند از : واحد محاسبه و منطق یا arithmetic logic unit که عملیات حسابی و منطقی را انجام می دهد، رجیسترهای پردازنده که برای ALU عملوند فراهم میکنند و نتایج عملیات را ذخیره می کنند، و یک واحد کنترل که عمل استخراج دستورالعمل ها از حافظه و اجرای آن ها را با هدایت کردن عملیات هماهنگ ALU، رجیسترها و سایر اجزا سازماندهی می کند.
اکثر CPU های جدید، روی ریزپردازنده های مدار مجتمع یا integrated circuit، با یک یا بیش از یک CPU، روی یک تراشه ی IC نیمه هادی اکسید فلز metal-oxide-semiconductor پیاده سازی می شوند. تراشه های ریزپردازنده ها که دارای چندین CPU هستند، پردازنده های چند هسته ای نام دارند. میتوان CPU های فیزیکی منفرد، با نام هسته های پردازنده، را نیز چند ریسه ای یا multithread کرد تا CPU های منطقی یا مجازی بیشتری به وجود آید. یک IC که حاوی یک CPU است، ممکن است دارای حافظه، رابط های محیطی، و سایر اجزای یک کامپیوتر باشد؛ این ابزارهای مجتمع در مجموع میکروکنترلر یا سیستم های روی یک تراشه یا systems on a chip نام دارند.پردازنده های آرایه ای یا پردازنده های برداری یا vector دارای چندین پردازنده هستند که به صورت موازی عمل می کنند و هیچ واحدی در مرکزیت قرار ندارد. CPU های مجازی یک فرم انتزاعی از منابع محاسباتی مجتمع پویا هستند.