مهندسی معکوس راه را باز کرد؛ پشتیبانی از NPU تراشه RK3576 در درایور متن‌باز Rocket برای نسخه اصلی لینوکس

RK3576
5 بازدید
۱۴۰۵-۰۴-۲۸
2 دقیقه
  • نویسنده: 0x7a657573
  • درباره نویسنده: من اون دیوونه‌ام که وقتی بورد روشن نمی‌شه، ذوق می‌کنم؛ یعنی یه شب تا صبح قراره با منبع تغذیه و لاجیک آنالایزر عشق کنم! آدما قهوه می‌خورن که بیدار بمونن، ولی من بیدار می‌مونم تا بفهمم این بورد چرا باهام قهر کرده! زندگی من یه لوپ بی‌نهایته بین باگ و دیباگ... با چاشنی یه کم امید و یه عالمه دیوونگی!

به گفته CNX Software – Embedded Systems News

توسعه‌دهندگان با استفاده از مهندسی معکوس موفق شدند پشتیبانی از NPU تراشه RK3576 را به درایور متن‌باز Rocket در نسخه اصلی لینوکس اضافه کنند. این دستاورد با وجود مستندات فنی ناقص، امکان اجرای مدل‌های هوش مصنوعی و بینایی ماشین را با دقت بالا روی کرنل‌های جدید فراهم کرده است.

درایور Rocket برای NPU راک‌چیپ RK3576 در Mainline Linux به پیشرفت‌هایی دست یافت

در سال ۲۰۲۴، اشاره کردیم که درایور متن‌باز برای NPU چیپست RK3588 که توسط Tomeu Vizoso توسعه یافته بود، عملکرد مناسبی را در تشخیص اشیاء ارائه داد. از آن زمان تاکنون، پیشرفت‌های خوبی حاصل شده و این پروژه اکنون در لینوکس Mainline با نام درایور Rocket شناخته می‌شود.

با این حال، با وجود شباهت واحد NPU، SoC راک‌چیپ RK3576 هنوز توسط درایور Rocket در نسخه اصلی لینوکس پشتیبانی نمی‌شود. خبر خوب این است که Ga Hing Woo بر روی پشتیبانی از NPU راک‌چیپ RK3576 در لینوکس Mainline با استفاده از استک درایور Rocket کار کرده و به‌روزرسانی‌ها را روی Radxa ROCK 4D در حال اجرای لینوکس 7.1-rc5 آزمایش کرده است. این کار به دلیل وجود ثبات‌های (registers) پنهانی که در دفترچه راهنمای فنی (TRM) مستند نشده بودند، نیازمند مهندسی معکوس جدی بود.

Rockchip RK3576 open source NPU driver

Ga Hing Woo (که با نام Jiaxing Hu نیز شناخته می‌شود) با ارسال ایمیلی برخی از چالش‌ها را توضیح داد:

  • اکنون خروجی Single int8 convolution در استک باز (open stack)، در مقایسه با مرجع پردازنده، از نظر بایت کاملاً دقیق (byte-exact) است. رسیدن به این مرحله به معنای مهندسی معکوس ثبات‌های محاسباتی بود که TRM آن‌ها را کاملاً نادیده گرفته است (جستجوی عبارات “CNA”، “CMAC” یا “convolution” در تمام ۴۳۸۱ صفحه، هیچ نتیجه‌ای در بر ندارد).
  • لایه‌های زنجیره‌ای (Chained layers) هنوز متوقف می‌شوند و من به جای حدس زدن، زمان زیادی را صرف درک علت آن کردم. بیت ۱۶ اجراکننده CNA/CORE/DPU در وظایف زنجیره‌ای هرگز فعال نمی‌شود، که ریشه آن به وضعیت یک ترتیب‌دهنده (sequencer) در sub-MMIO برمی‌گردد که درایور قادر به دیدن آن نیست. بنابراین، این یک نتیجه منفیِ صریح است، نه اصلاحی که ادعای انجامش را داشته باشم.
  • توسعه‌دهنده دیگری به نام MidG971، به‌طور مستقل روی RK3568 و از یک تراشه متفاوت، با همین بن‌بست مواجه شد. همین موضوع واقعاً مرا ترغیب کرد تا به جای مسکوت گذاشتن موضوع، آن را گزارش کنم.

نوشته مورد بحث، یک مقاله تحقیقاتی بسیار فنی با عنوان “راه‌اندازی NPU مدل RK3576 در لینوکس Mainline: مسیر تک‌وظیفه‌ای با دقت بایت و نتیجه منفی مبتنی بر ابطال در محاسبات چندوظیفه‌ای زنجیره‌ای” است. تمامی اعداد در این مقاله اندازه‌گیری شده‌اند و تخمینی نیستند. این متن احتمالاً تنها توسط کسانی درک خواهد شد که پیش از این روی این نوع NPUها کار کرده‌اند.

کد منبع و دستورالعمل‌های مربوط به راه‌اندازی کرنل Mainline برای NPU تراشه RK3576 روی Radxa ROCK 4D در GitHub قابل مشاهده است. او همچنین Runtimeهای RKNPU/RKLLM را برای اجرای مدل‌های زبانی محلی (LLMs) و بینایی ماشین روی یک کرنل Mainline (پروژه Kiln) بسته‌بندی کرده است تا نشان دهد که پچ‌های کرنل با موفقیت درایور سازنده (vendor) را فعال می‌کند، حتی اگر درایور متن‌باز Rocket هنوز برای RK3576 کاملاً آماده نباشد. نتایج روی SBC مدل ROCK 4D به این شرح است: Llama-3.2-1B با سرعت حدود ۱۳ توکن در ثانیه، Qwen2.5-1.5B با سرعت حدود ۹ توکن در ثانیه و MobileNet با سرعت حدود ۱۶۹ فریم در ثانیه.

اطلاعات
5
0
0
اشتراک و حمایت
profile نویسنده: 0x7a657573 متخصص الکترونیک

من اون دیوونه‌ام که وقتی بورد روشن نمی‌شه، ذوق می‌کنم؛ یعنی یه شب تا صبح قراره با منبع تغذیه و لاجیک آنالایزر عشق کنم! آدما قهوه می‌خورن که بیدار بمونن، ولی من بیدار می‌مونم تا بفهمم این بورد چرا باهام قهر کرده! زندگی من یه لوپ بی‌نهایته بین باگ و دیباگ... با چاشنی یه کم امید و یه عالمه دیوونگی!


مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله