نسخهای از پروژه PoCL 3.0 (Portable Computing Language OpenCL) ارائه شده است که پیادهسازی استاندارد OpenCL را توسعه میدهد که مستقل از تولیدکنندگان شتابدهندههای گرافیکی است و امکان استفاده از پشتیبانهای مختلف برای اجرای هستههای OpenCL بر روی انواع مختلف گرافیک و مرکزی را فراهم میکند. پردازنده ها کد پروژه تحت مجوز MIT توزیع شده است. از کار بر روی پلتفرمهای X86_64، MIPS32، ARM v7، AMD HSA APU، NVIDIA GPU و پردازندههای تخصصی مختلف ASIP (پردازنده مجموعه دستورالعملهای خاص برنامه) و TTA (معماری راهاندازی انتقال) با معماری VLIW پشتیبانی میکند.
پیاده سازی کامپایلر هسته OpenCL بر اساس LLVM ساخته شده است و Clang به عنوان قسمت جلویی برای OpenCL C استفاده می شود. برای اطمینان از قابلیت حمل و عملکرد مناسب، کامپایلر هسته OpenCL می تواند توابع ترکیبی ایجاد کند که می تواند از منابع سخت افزاری مختلف برای موازی سازی اجرای کد استفاده کند، مانند VLIW، superscalar، SIMD، SIMT، چند هسته ای و چند رشته ای. پشتیبانی از درایورهای ICD (درایور کلاینت قابل نصب) وجود دارد. پشتیبان هایی برای پشتیبانی از عملیات از طریق CPU، ASIP (TCE/TTA)، GPU مبتنی بر معماری HSA و NVIDIA GPU (از طریق libcuda) وجود دارد.
در نسخه های جدید:
- حداقل مجموعه ای از ویژگی های مورد نیاز برای پشتیبانی از مشخصات OpenCL 3.0 پیاده سازی شده است. پشتیبانی از OpenCL 3.0 در حال حاضر فقط در پشتیبانهای مبتنی بر CPU با LLVM 14 در دسترس است (سایر بکاندها و نسخههای قدیمیتر LLVM از OpenCL 1.2 پشتیبانی میکنند).
- پشتیبانی از Clang/LLVM 14 اضافه شده است.
- ردیابی و تجسم بهبود یافته است.
- اضافه شدن پشتیبانی برای تولید گروه های تخصصی از توابع و گنجاندن آنها در فایل های اجرایی با هسته های OpenCL.
منبع: opennet.ru