چکیده
این مقاله کوتاه دو پیاده سازی شبکه های عصبی مصنوعی پیشخور در FPGAها را ارائه می دهد. پیاده سازی در نیاز منابع و سرعت محاسبات FPGA متفاوت است. هر دو پیاده سازی با اعمال محاسبات نقطه شناور، توابع فعال سازی با دقت بسیار بالا را اعمال کرده و باعث تغییر آسان ساختار شبکه عصبی بدون نیاز به اجرای دوباره کل پروژه FPGA می شوند.
1. مقدمه
بیشتر برنامه های کاربردی شبکه های عصبی مصنوعی موجود (ANNs)، مخصوصا برای محیط تجاری، به صورت یک نرم افزار توسعه یافته اند. با این حال، مورد مشترک ارائه شده توسط سخت افزار ممکن است مزایایی مانند سرعت بالاتر، کاهش هزینه و تحمل بیشتر نقص و خطا (تضعیف ظریف) ارائه دهد [1، 2]. در میان روش های توسعه یافته ی مختلف اجرای ANNها در آرایه های دروازه ای قابل برنامه ریزی میدانی (FPGA ها)، مانند [3 - 6]، نوعی از پیاده سازی وجود دارد که اجازه می دهد ساختار ANN (یعنی تعداد لایه ها و / یا نورون ها و غیره) بدون نیاز به ترکیب و اجرای دوباره کل پروژه FPGA تغییر کند. این ویژگی انعطاف پذیری پیاده سازی ANN را تا سطح مشابه ارائه شده توسط نرم افزار افزایش داده و در عین حال مزایای سخت افزاری را نیز حفظ می کند. متاسفانه، راه حل های موجودی که بر مبنای محاسبات نقطه ثابت هستند (به عنوان مثال، [7 تا 9])، دقت محاسبات تابع فعال سازی را به شدت محدود کرده، و نیاز به ابزار نرم افزار اختصاصی برای تشکیل مجموعه ای از دستورالعمل های کاربر برای کنترل محاسبات ANN در سخت افزار توسعه یافته دارد. بعضی از آنها [9، 10] سبک معماری موازی را اعمال نکرده و تنها از یک تک بلوک عصبی برای محاسبه کل ANN استفاده می کنند. در مورد [10] محاسبه نقطه شناور (FP) استفاده شده و یک دقت نسبتا بالا در تابع فعال سازی به دست مي آيد، با اين وجود امکان تغيير ساختار ANN بدون اجرای دوباره کل پروژه به شدت تحت تأثير قرار مي گيرد.
Abstract
This brief paper presents two implementations of feed-forward artificial neural networks in FPGAs. The implementations differ in the FPGA resources requirement and calculations speed. Both implementations exercise floating point arithmetic, apply very high accuracy activation function realization, and enable easy alteration of the neural network's structure without the need of a re-implementation of the entire FPGA project.
1. Introduction
Most of the existing artificial neural networks (ANNs) applications, particularly for commercial environment, are developed as software. Yet, the parallelism offered by hardware may deliver some advantages such as higher speed, reduced cost, and higher tolerance of faults (graceful degradation) [1, 2]. Among various developed methods of ANNs implementations in field programmable gate arrays (FPGAs), e.g., [3 - 6], there is a breed of implementation which allows the structure of the ANN (i.e., the number of layers and/or neurons, etc.) to be altered without the need of re-synthesizing and re-implementation of the whole FPGA project. This feature increases the ANNs implementation flexibility to the similar level as offered by software, at the same time maintaining the advantages delivered by hardware. Unfortunately, existing solutions, e.g., [7 - 9], are based on fixed point arithmetic, have strongly limited calculations accuracy of the activation function, and require dedicated software tools for the formulation of a set of user instructions controlling the ANN calculations in the developed hardware. Some of them [9, 10] do not employ parallel architecture exploiting only a single neuron block for the calculations of the whole ANN. In the case of [10] floating point (FP) arithmetic is used and a relatively high accuracy of the activation function is achieved, however the feasibility of the alteration of the ANN structure without reimplementation of the whole project is heavily compromised.
چکیده
1. مقدمه
2. پیاده سازی صرفه جویی منابع
3. پیاده سازی موازی
4. نیاز به منابع، سرعت محاسبات و دقت
5. نتیجه گیری ها
منابع
Abstract
1. Introduction
2. Resources-saving implementation
3. Parallel implementation
4. Resources requirement, calculations speed and accuracy
5. Conclusions