برد جتسون نانو Jetson Nano

آموزش کار با برد جتسون نانو بخش ششم: ابزارهای توسعه در Jetpack NVIDIA

getting-started-with-jetson-nano-nvidia-step-six-jetpack-development-kit-digispark
نوشته شده توسط فرهود جعفری

برد جتسون نانو Jetson با توجه به اینکه دارای سیستم عامل است. درگاهی برای ورود به دنیای امبدد لینوکس خواهد بود. از اینرو دیگر با موارد ساده‌ای از جمله LED چشمک زن و راه اندازی سنسوری خاص درگیری نخواهیم بود. البته به این معنی نیست که نسبت به چنین مواردی آگاهی و یا تجربه نداشته باشیم. بلکه با دانستن چنین مواردی، کار کردن با امبدد لینوکس و جتسون نانو، بسیار قابل فهمتر خواهد بود. دنیای امبدد لینوکس Embedded linux بسیار گسترده و عمیق است. به نحوی که برای ورود به آن، پیشنیازهای متنوع و زیادی بایستی بررسی و رسیدگی شوند. هدف ما در مجموعه آموزش‌های جتسون نانو، پرداختن به کلیه این موارد نیست. ولی حداقلی‌ها را برای شروع کار با برد جتسون در نظر گرفته‌ایم. تا بتوانیم درگاهی برای ورود علاقمند به دنیای امبدد لینوکس و پردازش‌های هوش مصنوعی را ایجاد کنیم. در این قسمت ابزارهای توسعه دهنده در جت پک Jetpack را بررسی خواهیم کرد. در ادامه آموزش مقدماتی از Jetson ابزارهای توسعه در Jetpack با مرجع تخصصی جتسون نانو به زبان فارسی، دیجی اسپارک همراه باشید.

 


مروری بر جت پک


در قسمت قبلی و بخش پنجم راجع به جت پک Jetpack و نسخه‌های آن صحبت کردیم. کتابخانه‌های کاربردی و قابل استفاده در Jetpack را هم بررسی کردیم. برخی از آن ها به صورت پیشفرض در جت پک موجود هستند و حتی نمونه‌های برنامه هم دارند. که در روند کار با جتسون نانو و درک آن بسیار کمک خواهند کرد. به عنوان مثال کتابخانه CUDA از جمله پر کاربردترین قابلیت‌های جتسون نانو و جت پک است. این کتابخانه کمک میکند که برنامه‌های نوشته شده برای واحد GPU را به صورت یک پک مجزا تبدیل کنیم. در این صورت روند توسعه سریع‌تر و منابع کمتری مصرف خواهد شد.

 


ابزارهای توسعه در Jetpack


JetPack شامل ابزارهای توسعه ای است که می توان از آنها برای برنامه نویسی و توسعه برنامه ها، عیب یابی، تحلیل و بهینه سازی استفاده نمود. برخی از این برنامه ها را مستقیماً می توان بر روی برد توسعه جتسون استفاده نمود و برخی دیگر را باید بر روی یک کامپیوتر میزبان دارای سیستم عامل لینوکس که به برد توسعه جتسون متصل شده است به کار گرفت. ابزار ها جهت برنامه نویسی، توسعه نرم افزاری و عیب یابی به شرح زیر هستند.

  • NVIDIA Nsight Eclipse Edition: جهت توسعه نرم افزار هایی که از سرعت بخشی GPU استفاده می کنند استفاده می شود.

NVIDIA Nsight Eclipse Edition (که با CUDA toolkit در یک بسته است) یک محیط برنامه نویسی کامل است که بر پایه پلتفرم Eclipse ساخته شده. محیطی را فراهم می کند که کلیه نیازهای برنامه نویسی مثل قابلیت ویرایش کدها، cross-compile و عیب یابی کدهای نوشته شده در CUDA-C، در یک برنامه به شما ارائه می گردد. بر روی کامیوترهایی اجرا می شود که از سیستم عامل لینوکس بهره می گیرند. این برنامه از کلیه بردهای خانواده جتسون پشتیبانی می کند.

NVIDIA Nsight Eclipse Edition - دیجی اسپارک

 

  • CUDA-GDB: برای عیب یابی های برنامه نویسی استفاده می شود.

CUDA-GDB ابزار خط فرمانی است که با CUDA Toolkit ارائه می شود و تجربه اشکال زدایی یکپارچه را به شما ارائه می دهد به طوری که هر دو بخش CPU و GPU برنامه خود را به طور همزمان اشکال زدایی کنید. روی سیستم های جتسون یا کامپیوتر هایی با سیستم عامل لینوکس اجرا می شود و از کلیه بردهای خانواده جتسون پشتیبانی می کند.

 

  • CUDA-MEMCHECK: برای اشکال زدایی خطاهای حافظه برنامه مورد استفاده قرار می گیرد.

CUDA-MEMCHECK برنامه ای مبتنی بر خط فرمان است که همراه CUDA Toolkit ارائه می شود که منبع و علت خطاهای به وجود آمده در دسترسی به حافظه در کد GPU را به شما نشان می دهد. CUDA-MEMCHECK همچنین خطاهای runtime را که در خلال اجرای برنامه بوجود می آیندگزارش کرده و موقعیت هایی را شناسایی می کند که هر کدام بالقوه می توانند باعث بروز خطاهای مختل کننده روال اجرای برنامه شما شوند. روی سیستم های جتسون یا کامپیوتر هایی با سیستم عامل لینوکس اجرا می شود و از کلیه بردهای خانواده جتسون پشتیبانی می کند.

NVIDIA CUDA-MEMCHECK در جتسون نانو - دیجی اسپارک

 


ابزارهای پروفایل و بهینه سازی برنامه


  • NVIDIA Nsight Systems برای پروفایل برنامه در GPU و CPU کاربرد دارد. NVIDIA Nsight Systems یک ابزار نمایه سازی با سربار بسیار کم برای سیستم است. به توسعه دهندگان افق دیدی  را می دهد که آن را برای تجزیه و تحلیل و بهینه سازی عملکرد نرم افزار نیاز دارند.

 

  • nvprof: ابزار خط فرمانی است که با CUDA Toolkit ارائه می شود که به شما امکان می دهد داده های پروفایل را جمع آوری و مشاهده کنید، به عنوان مثال، جدول زمانی فعالیت های مرتبط با CUDA در CPU و GPU. روی سیستم های جتسون یا کامپیوتر هایی با سیستم عامل لینوکس اجرا می شود و از کلیه بردهای خانواده جتسون پشتیبانی می کند.
  • Visual Profiler: برای پروفایل سازی برنامه ها بر اساس CPU و GPU استفاده می شود. البته این نرم افزار که جزئی از بسته CUDA Toolkit است در آینده منسوخ و از رده خارج خواهد شد. به جای آن توسعه دهندگان می توانند از NVIDIA Nsight Systems برای نمونه برداری و ردیابی برنامه های در CPU و GPU و از Nsight Compute برای پروفایل کردن کرنل CUDA استفاده کنند. روی کامپیوتر هایی با سیستم عامل لینوکس اجرا می شود و از کلیه بردهای خانواده جتسون پشتیبانی می کند.
  • NVIDIA Nsight Graphics: یک برنامه مستقل برای اشکال زدایی و پروفایل سازی برنامه های گرافیکی است. ابزارهای تجزیه و تحلیل قدرتمند داخل آن به شناسایی فرصت های بهینه سازی کمک می کنند. روی کامپیوتر هایی با سیستم عامل لینوکس اجرا می شود و از کلیه بردهای خانواده جتسون پشتیبانی می کند.
  • NVIDIA Nsight Compute: یک پروفایل کننده هسته برای برنامه های CUDA است. این برنامه معیارهای عملکرد دقیق برای تجزی و تحلیل را ارائه می دهد و امکان مقایسه نتایج بین خطوط پایه و اجرای فعلی را فراهم می کند. Nsight Compute را می توان به کمک اسکریپت های تجزیه و تحلیل برای نتایج به دست آمده پس از پردازش، گسترش داد. روی کامپیوتر هایی با سیستم عامل لینوکس اجرا می شود و فقط از بردهای Jetson AGX Xavier و Jetson Xavier NX پشتیبانی می کند.
  • NVIDIA Nsight Compute CLI: این نرم افزار یک روش غیرتعاملی برای پروفایل کردن برنامه ها از طریق خط فرمان ارائه می دهد. می تواند نتایج را مستقیماً در خط فرمان چاپ کرده و نمایش دهد یا اینکه آنها را در یک فایل گزارش ذخیره سازی کند. همچنین از آن می توان برای راه اندازی برنامه هدف و سپس تعلیق آن تا زمانی که ابزار دیگری برای نمایه سازی (ایجاد نمودار) متصل شود، استفاده کرد.

 


لوازم مورد نیاز


بردهای مبتنی بر هوش مصنوعی Jetson nano

کابل USB Type-C

مموری Micro SD

 


جمع بندی


در این بخش ادامه موضوع جت پک Jetpack SDK را با بررسی ابزارهای توسعه در آن ادامه دادیم. یکی از ابزارهای مهم و کاربردی هوش مصنوعی در جتسون نانو، جت پک Jetpack SDK است. از جمله NVIDIA Nsight Eclipse Edition و CUDA بررسی شدند. در بخش‌های بعدی بسته به پروژه مورد نظر با این موارد کار خواهیم کرد. آگاهی نبست به این ابزارها میتوانند در روند کار کردن و راه اندازی پروژه ها با برد جتسون نانو، به ما کمک کنند.

 

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

 

درباره نویسنده

فرهود جعفری

When did Noah build the ark? Before the rain, before the RAIN...

تبادل نظر و رفع عیب با ثبت دیدگاه