4th Gen Xeon Scalable”Sapphire Rapids”پروسیسرز کے ساتھ متعارف کرائے گئے مختلف نئے ایکسلریٹر ہیں جو منتخب SKUs پر یا Intel On Demand پیشکش کے ذریعے دستیاب ہیں۔ اگرچہ وہاں کے ابتدائی چیلنجوں میں سے ایک ابتدائی ایکسلریٹر سافٹ ویئر سپورٹ کی حدود اور بہت سے اپ اسٹریم اوپن سورس (یا یہاں تک کہ وسیع پیمانے پر) سافٹ ویئر ابھی تک ان نئے ایکسلریٹروں کو استعمال کرنے کے قابل نہیں ہیں۔ اس محاذ پر بہتریوں میں سے ایک انٹیل انجینئرز کرنل کے لیے ایک IAA کرپٹو کمپریشن ڈرائیور پر کام کر رہے ہیں تاکہ ان-میموری اینالٹکس ایکسلریٹر کرنل کی خصوصیات تک شفاف طریقے سے قابل رسائی ہو جو کرنل API کا استعمال کر سکے۔
گزشتہ کئی مہینوں میں دیکھا گیا ہے کہ IAA کرپٹو کمپریشن ڈرائیور لینکس کرنل کے لیے اب تک ڈیڑھ درجن ترمیمات سے گزرتا ہے جب تک کہ یہ مین لائن کی طرف کام کرتا ہے۔ یہ نیا ڈرائیور Intel IAA ایکسلریٹر کو کرنل کرپٹو API کے ذریعے دستیاب کرتا ہے اور اس کے نتیجے میں اس API کو نشانہ بناتے ہوئے کرنل کوڈ کے ذریعے استعمال کیا جا سکتا ہے، جیسے Zswap اور zRAM۔ ڈرائیور ہارڈ ویئر کے ذریعے نافذ کردہ DEFLATE الگورتھم کے مطابقت پذیر اور async دونوں ورژن فراہم کرتا ہے۔
جبکہ یہ ڈرائیور IAA ایکسلریٹر کے لیے کرنل کے استعمال کے کیسز کھولے گا، ڈرائیور کے پیچ نوٹ سیفائر ریپڈز ایکسلریٹر کو ترتیب دینے کے ارد گرد ابتدائی سر درد کو تسلیم کرتے ہیں، یعنی ایک قابل لینکس سافٹ ویئر اسٹیک کو بوٹ کرتے وقت یہ اب بھی آؤٹ آف دی باکس نہیں ہوگا:
“IAA ہارڈویئر کافی پیچیدہ ہے اور عام طور پر اسے سیٹ کرنے کے لیے ہارڈ ویئر کی کافی تفصیلی سمجھ کے ساتھ ایک باشعور ایڈمنسٹریٹر کی ضرورت ہوتی ہے۔ اس کو استعمال کرنے سے پہلے اسے استعمال کیا جا سکتا ہے۔ جیسا کہ دستاویز میں ذکر کیا گیا ہے، اس کے لیے عام طور پر ایک خاص ٹول استعمال کرنے کی ضرورت ہوتی ہے جسے accel-config کہا جاتا ہے تاکہ IAA ورک کیو، انجن وغیرہ کو شمار اور ترتیب دیا جا سکے، حالانکہ یہ صرف sysfs فائلوں کے ذریعے بھی کیا جا سکتا ہے۔
ڈرائیور کا عمل اس ضرورت کی عکاسی کرتا ہے اور ہارڈ ویئر کو صرف ایک بار کرپٹو پرت کے ذریعے رسائی حاصل کرنے کی اجازت دیتا ہے جب ہارڈ ویئر کو ترتیب دیا جاتا ہے اور اسے IAA کرپٹو ڈرائیور کے ساتھ پابند کیا جاتا ہے۔ ہارڈ ویئر جب تک کہ اسے منتظم کے ذریعہ واضح طور پر ترک نہیں کیا جاتا ہے۔ یہ خود بخود اس وقت ہوتا ہے جب منتظم پہلی IAA ورک قطار کو فعال کرتا ہے یا آخری کو غیر فعال کرتا ہے۔ iaa_crypto (sync اور async) الگورتھم اس وقت رجسٹرڈ ہوتے ہیں جب پہلی ورک کیو کو فعال کیا جاتا ہے، اور آخری کو غیر فعال ہونے پر رجسٹرڈ کیا جاتا ہے۔
آپریشنز کی معمول کی ترتیب عام طور پر یہ ہوگی:
accel-config یا sysfs کا استعمال کرتے ہوئے ہارڈ ویئر کو کنفیگر کریں
iaa crypto ڈرائیور کو کنفیگر کریں (نیچے دیکھیں)
سب سسٹم کو کنفیگر کریں جیسے iaa_crypto algo استعمال کرنے کے لیے zswap/zram
کام کا بوجھ چلائیں خالص سافٹ ویئر کے مقابلے میں استعمال:
اس مہینے کے شروع میں v6 پیچ سیریز< کے لیے اس کرنل ڈرائیور کو جائزہ کے لیے بھیج دیا گیا تھا۔ اگرچہ ٹائمنگ دی گئی ہے اور ابھی تک cryptodev.git برانچ کے ذریعے اسے نہیں اٹھایا جا رہا ہے، اس بات کا امکان نہیں ہے کہ یہ ڈرائیور آنے والے Linux v6.5 سائیکل کے لیے وقت پر تیار ہو جائے۔ ایک اور رکاوٹ لینکس کرپٹو سب سسٹم مینٹینر ہربرٹ سو کے ذریعہ ممکنہ طور پر بڑھایا گیا:
تو آپ نے کہا کہ ڈبہ عام ڈیفلیٹ الگورتھم کے ساتھ مطابقت نہیں رکھتا۔ کیا اس کا مطلب یہ ہے کہ اس کے لیے عام ڈیفلیٹ الگورتھم کے ذریعے کمپریس کردہ کسی چیز کو ڈیکمپریس کرنے کا کوئی طریقہ نہیں ہے، اور اس کے برعکس اس کے کمپریس شدہ آؤٹ پٹ کو عام ڈیفلیٹ کے ذریعے ڈیکمپریس نہیں کیا جاسکتا۔ ?ہم Crypto API میں الگورتھم شامل نہیں کرتے ہیں اگر صرف عمل درآمد ہارڈ ویئر کے ذریعہ ہو۔ IOW اگر آپ ایک نیا الگورتھم شامل کر رہے ہیں، تو سافٹ ویئر ورژن پہلا پیچ ہونا چاہیے۔
انٹیل کے ڈیفلیٹ نفاذ میں یہ فرق حقیقی معلوم ہوتا ہے۔ ClickHouse کے ڈویلپرز نے پہلے اپنے Intel QPL سپورٹ میں خبردار کیا تھا کہ اگر Intel IAA-accelerated database کو میزبانوں کے درمیان منتقل کرنا چاہتے ہیں، تو آپ کو پہلے تمام ڈیٹا کو سرور سے اتارنے سے پہلے اسے تبدیل کرنا ہوگا۔ ایسی صورت میں اگر اس ڈرائیور کو مین لائن میں جانا ہے تو، انٹیل کو دانا کے لیے بھی سافٹ ویئر کا نفاذ فراہم کرنے کی ضرورت ہوگی۔