NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2867 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 7 از 7

موضوع: مقایسه سرعت عمل ضرب ماتریس ها در FPGA و miniPC

  1. #1
    مدیر انجمن sobhan537 آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    عبدالملکی
    نوشته ها
    1,084
    تشکر
    3,098
    تشکر شده 804 بار در 495 پست

    پیش فرض مقایسه سرعت عمل ضرب ماتریس ها در FPGA و miniPC

    با عرض سلام و خسته نباشید خدمت عزیزان و دوستان گلم

    برای یک پروژه ای من نیاز دارم که عملیات پردازشی تقریبا سنگینی رو با نهایت سرعت انجام بدم. میخوام یک ماتریس 100*100 رو در یک ماتریس 100*100 دیگه ضرب کنم و حاصل رو در یک ماتریس جدید ذخیره کنم. و این کار رو بارها و بارها با نهایت سرعت انجام بدم.

    راستش تا بحال با FPGA کار نکردم. ولی تا اونجایی که پرسوجو کردم شنیدم میگن پیاده سازی عمل ضرب در FPGA نیاز به گیت های فراوانی داره و دردسر سازه. میگن برای همچین ضربی ماتریس ها رو به ماتریس های 5*5 تکه تکه میکنن بعد ضرب میکنن و دردسر داره و به همین دلیل سرعت نهایی عملیات هم میاد پایین و از حالت Real Time خارج میشه! به همین خاطر به ذهنم رسید شاید با این بردهای سیستم عامل دار با استفاده از نرم افزراهایی مثل متلب بشه همچین عملیاتی رو با سرعت بیشتر نسبت به FPGA انجام داد!

    لطفا نظرات خودتون رو بگید. برای انجام این عملیات بهتره از FPGA استفاده کنم؟ یا miniPC ؟

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    سلام
    اولین مشخصه ایی که باید مشخص کنید اعدادتون floating point هست؟ یا اعداد صحیح؟ با چه دقتی؟
    در صورت وجود Floating point ایا میشه اونها رو به Fixed point تبدیل کرد ( با توجه به کم شدن دقت ،کاهش هزینه، افزایش زمان تست )
    لینک ازتباطی ورودی و خروجی داده ها چی هست؟
    ایا نیاز به ذخیره سازی ( موفق ، دائم ) وجود داره یا فقط باید ضرب انجام بشه و در خروجی قرار بگیره؟!!!!
    نسبت هزینه به انجام پروژه براتون چقدر هست؟

  4. تشکرها از این نوشته :


  5. #3
    مدیر انجمن sobhan537 آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    عبدالملکی
    نوشته ها
    1,084
    تشکر
    3,098
    تشکر شده 804 بار در 495 پست

    پیش فرض

    پروژه ازمایشگاهیه. نباید هزینه بره بالا. کمتر از 600 هزار تومن باید باشه
    اعداد Floating هستش. توسط یک ADC از سیگنال نمونه برداری میشه و اعداد داخل ماتریس ها ریخته میشه.
    ذخیره سازی موقت و دایم نیاز نیست.

  6. #4
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    خب بازم اینجا شکل خوندن از adc مطرح میشه؟
    اگر یه شمای کلی از طرح رو بگید راحت تر میتونم بهتون بگم که میشه یا نه!!!
    مثلا چند تا adc هست؟
    سرعت نمونه گیری adc ها چقدر هست؟
    ایا یکی از ماتریس ها عدد ثابت هست یا هردو ورودی از adc ها هستن؟
    نتیجه این سوالها به این جواب میرسه که به ازا هر ورودی از adc یک ضرب رو انجام بدید (که کار راحتی هست) یا اینکه کل ماتریس رو تولید کنید بعد ضرب رو انجام میدید( که میشه ولی احتیاج به فردی هست که بتونه
    این کار رو انجام بده و فکر کنم هزینه اش یکم بیشتر میشه )

  7. تشکرها از این نوشته :


  8. #5
    مدیر انجمن sobhan537 آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    عبدالملکی
    نوشته ها
    1,084
    تشکر
    3,098
    تشکر شده 804 بار در 495 پست

    پیش فرض

    مهندس جان، پروژه منعطفه و همه این مواردی که ذکر کردید، به خودم بستگی داره. مثلا اگر از الگوریتم های ساده مثل lms یا rls استفاده کنم، به ازای هر ورودی adc یک ضرب انجام میدم. ولی خب سرعت همگرایی میاد پایین. ولی اگه بخوام از الگوریتم های پیچیده شبکه عصبی استفاده کنم، اونموقع باید کل ماتریس ها تشکیل بشه بعد ضرب بشه. که fpga به دلیل داشتن تعداد بلوک ضرب کننده محدود، نمیتونه این کار رو انجام بده!

  9. #6
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    راستش با این چیزی که من از پروژه فهمیدم شما تعداد ضرب های خیلی محدودی دارید من نمیدونم چقدر زمان اینجا براتون مهمه ولی شما روی spartan6 راحت میتونید یه ضرب کننده با دقت 32 بیتی(float) بسازید
    که با 100 مگ کلاک بخوره که میشه 100 میلیون ضرب در ثانیه. احتیاج به چند تا هم ندارید.عملا با یک MAC کارتون انجام میشه.فقط یکم کد نویسی داره.

  10. کاربران : 2 تشکر کرده اند از شما mrm برای ارسال این پست سودمند:


  11. #7
    کاربر فعال
    تاریخ عضویت
    Jun 2007
    نوشته ها
    106
    تشکر
    50
    تشکر شده 93 بار در 60 پست

    پیش فرض

    هرجور حساب میکنم real time بودن این کار درست در نمیاد. پیاده کردن ضرب کننده خیلی سنگین نیست ولی این جا شما تعداد خیلی زیادی ضرب کننده و جمع کننده لازم دارید. به نظر من سریع ترین حالت رو با FPGA می تونید داشته باشید. با توجه به این که کار تکراری هست و راحت میشه موازی پیاده سازیش کرد!
    مورد بعدی که می تونه ارزون باشه DSP هستن که کار ضرب ماتریس رو انجام میدن. اگه از میکروی stm32f4 استفاده کنید یه DSP داخلش هست و با یه هزینه کم می تونید تست کنید. توی راهنماش چیزی در مورد ابعاد ماتریسی که میتونه ضرب کنه پیدا نکردم برای همین فکر میکنم محدودیتی نباشه از این نظر. این میکرو FPU هم داره ولی به نظرم اعداد ورودی رو صحیح نگه دارید! این طوری شاید به سرعت قابل قبول تری برسید!
    Matrix Multiplication

  12. کاربران : 2 تشکر کرده اند از شما shahin برای ارسال این پست سودمند:


موضوعات مشابه

  1. مقایسه سرعت RAM و NOR در LPC1788 core board
    توسط omid_m در انجمن LPC series (NXP)
    پاسخ: 5
    آخرين نوشته: 21-05-2015, 01:32
  2. مقایسه سرعت آی سی Nand Flash با MMC
    توسط sajjad_AD در انجمن stm32
    پاسخ: 4
    آخرين نوشته: 01-12-2014, 17:39
  3. [سوال] مقایسه fpga با میکرو کنترولر و مینی کامپیوتر ها
    توسط alamdar در انجمن پردازنده هاي ارایه ای
    پاسخ: 15
    آخرين نوشته: 08-03-2014, 19:05
  4. دوربین کنترل سرعت پلیس فنلاند (+عكس)
    توسط رهتازالکترونیک در انجمن پردازش تصویر
    پاسخ: 4
    آخرين نوشته: 15-02-2014, 16:21

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •