تکنولوژیها
- C#PytorchCuda
توضیح مختصر درباره موقعیت شغلی مورد نظر:
پروژه مد نظر ما عبارت است از پیاده سازی یک رابط نرم افزاری برای برقراری ارتباط میان سخت افزار دستگاه تصویربرداری و کاربر دستگاه. به عبارت دیگر، انتظار میرود این نرم افزار بتواند حجم بالایی از دادههای تصویربرداری شده را از طریق پورت شبکه دریافت کرده و در گام نخست پردازشهای اولیه را روی آنها انجام دهد. سپس در گام بعدی دادهها باید به کارت گرافیک ارسال شوند تا پردازشهای سنگینتری روی آنها انجام شود. پیاده سازیهای مربوط به قسمت پردازش GPUدر زبان Cuda انجام شده است اما لازم است تا مدیریت زمانبندی و نحوه ارسال و دریافت دادهها به سمت GPU تحت کنترل نرم افزار باشد.
بعد از انجام پردازشهای نهایی روی دادهها، لازم است تا این دادهها وارد یک شبکه عصبی عمیق شوند. طراحی معماری این شبکههای عصبی و آموزش آنها در زبان پایتون انجام شده است. اما از آن جا که استفاده از زبان پایتون نمیتواند گزینه مناسبی برای یک محصول نهایی باشد، لازم است تا این پیاده سازیها به صورت کارا به زبانی مثل # Cیا Cمنتقل شده و با برنامه اصلی تجمیع شود.
ویژگی مد نظر دیگر آن است که یک رابط گرافیکی در اختیار کاربر دستگاه قرار بگیرد تا وی بتواند تصویربرداری را کنترل کرده و در نهایت با دیدن خروجی شبکههای عصبی تصمیم مناسب را اتخاذ نماید. همچنین رابط نرم افزاری باید بتواند اطلاعات مناسبی از وضعیت کاری سیستم و خطاهای احتمالی را به کاربر گزارش کند.
لازم به ذکر است که به دلیل حجم بالای پردازشی و همچنین اهمیت زمان مصرفی، لازم است پیاده سازی بخشهای مختلف این سیستم به صورت بهینه صورت پذیرد و هزینههای اضافی از جمله رفت و برگشت داده بین بخشهای مختلف سیستم تا جای ممکن حذف شود. البته پیاده سازی این نرم افزار تا حدود زیادی انجام شده است اما این پیاده سازی به یک بازنگری و بهینه سازی اساسی نیاز دارد.
مهارتهای ضروری:
- تسلط بر اصول برنامه سازی، شیء گرایی و زبان برنامه نویسی #C
- تسلط بر پیاده سازی رابط گرافیکی (GUI) در محیط (WPF) #C
- آشنایی با برنامه نویسی Cuda و یکپارچه سازی آن با کدهای #C
- آشنایی با بحثهای یادگیری عمیق و ترجیحا فریمورک Pytorch و مسلط به پیاده سازی شبکههای عصبی عمیق در زبان # Cیا C
لازم به ذکر است میزان حقوق بسته به تجربه متقاضی بین 6 تا 8 میلیون خواهد بود.