এফপিজিএ কি কোনও মাল্টি-কোর পিসি সম্পাদন করতে পারে?


20

আমি বুঝতে পারি না কীভাবে এফপিজিএ কোনও অ্যালগরিদমকে ত্বরান্বিত করতে ব্যবহার করা যেতে পারে। বর্তমানে আমি একটি কোয়াডকোয়ার ল্যাপটপে রিয়েল টাইম অ্যালগরিদম গ্রাস করার সময় চালিয়ে যাচ্ছি যাতে চারটি গণনা সমান্তরালে করা যায়।

আমাকে সম্প্রতি সতর্ক করা হয়েছে যে এফপিজিএ আরও ভাল পারফরম্যান্স দিতে পারে। আমি বুঝতে পারি না যে এটি কীভাবে কাজ করে। কেউ কি ব্যাখ্যা করতে পারেন যে কীভাবে FPGA একটি অ্যালগোরিদমকে ত্বরান্বিত করে এবং যদি আমার কোনও Xilinx বা Altera FPGA সমাধানে স্যুইচ করা উচিত বা আমার কোয়াডকোয়ার ল্যাপটপে গণনা সম্পাদন করা চালিয়ে যাওয়া উচিত।

অতিরিক্ত বিবরণ: অ্যালগরিদমটি ওয়েভলেট প্যাকেটের রূপান্তর মাধ্যমে ফিড ইনপুট ব্যবহার করে 20 টি কৃত্রিম নিউরাল নেটওয়ার্ক চালায়

দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ।


1
আপনি কি কোনও ডেস্কটপ (বা সার্ভার) সিপিইউতে অ্যালগরিদম চালানো বিবেচনা করেছেন? এগুলি সাধারণত ল্যাপটপের সিপিইউগুলির চেয়ে দ্রুত faster (একটি ধ্রুবক ফ্যাক্টর দ্বারা, কিন্তু এখনও দ্রুত।)
ntoskrnl

1
নিউরাল নেটওয়ার্ক প্রসেসিংয়ের জন্য জিপিইউ ব্যবহার করার কথা ভাবুন। জিপিইউতে অনেকগুলি ইউনিট থাকে যা ভাসমান পয়েন্ট সংখ্যাগুলিকে সমান্তরালে গুণ করতে পারে।
কামিল

@ntoskrnl আমি ধরে নিয়েছি তার কাছে আই 5 বা আরও ভাল সিপিইউ (4 কোর) রয়েছে তাই ডেস্কটপ বা সার্ভারে পারফরম্যান্স কেবল ঘড়ির গতিতে প্রসারিত হবে। হয়তো Xeon এ তিনি সামান্য (20%?) পারফরম্যান্স লাভ করতে পারেন বিশাল ক্যাশে এবং আরও ভাল মেমরির ব্যান্ডউইদথকে ধন্যবাদ, তবে এটি খুব বেশি নয়।
কামিল

আপনার কি সিপিইউ আছে?
কামিল

প্রশ্নের আকর্ষণীয় সময়, আমরা একইরকম নেটওয়ার্ক পেয়েছি নেটওয়ার্কেঞ্জিনিয়ারিং.এসই
মাইক পেনিংটন

উত্তর:


23

আমার বেঞ্চমার্কের সহকর্মী এটি এনে এই সিদ্ধান্তে পৌঁছেছেন যে আপনার এফপিজিএতে প্রায় 100 টিরও বেশি স্বতন্ত্র , পূর্ণসংখ্যার কাজগুলি শেষ হলে এফপিজিএগুলি একটি পিসি ছাড়িয়ে যাবে। ভাসমান পয়েন্ট কর্মের জন্য জিপিজিপিইউ জুড়ে এফপিজিএকে পরাজিত করে। সংকীর্ণ মাল্টিথ্রেডিং বা সিমডি অপারেশনের জন্য সিপিইউগুলি অত্যন্ত অপ্টিমাইজ করা হয় এবং সাধারণত এফপিজিএগুলি অর্জনের চেয়ে বেশি ঘড়ির গতিতে চালিত হয়।

অন্যান্য সতর্কতা: কাজগুলি অবশ্যই স্বাধীন হতে হবে। যদি কার্যগুলির মধ্যে ডেটা নির্ভরতা থাকে তবে এটি গণনার গুরুত্বপূর্ণ পথকে সীমাবদ্ধ করে। এফপিজিএগুলি বুলিয়ান মূল্যায়ন এবং পূর্ণসংখ্যার গণিত, পাশাপাশি হার্ডওয়্যার লো-ল্যাটেন্সি ইন্টারফেসের জন্য ভাল তবে মেমরি-নির্ভর ওয়ার্কলোড বা ভাসমান পয়েন্টের জন্য নয়।

যদি আপনাকে ডিআরএমে কাজের চাপ রাখতে হয় তবে তা প্রসেসরের চেয়ে বাধা হয়ে দাঁড়াবে।


3
ডিআরএএম সীমাবদ্ধ কিনা তা নির্ধারণ করার জন্য আপনাকে এও জানতে হবে যে এফপিজিএগুলিতে অনেকগুলি ছোট বিতরণ করা র্যাম রয়েছে (যেমন 500 স্বতন্ত্র 9 কেবিট র‌্যাম ব্লক) যা একই ঘড়ির চক্র চলাকালীন সবাই পড়তে / লিখতে পারে।
ম্যাক্সি

19

একটি এফপিজিএ একটি প্রসেসরের থেকে সম্পূর্ণ আলাদাভাবে কাজ করে।

একটি প্রসেসরের জন্য আপনি সফ্টওয়্যার লিখেন যা হার্ডওয়্যারকে কী করতে হবে তা বলে। একটি এফপিজিএতে আপনি অভ্যন্তরীণভাবে "হার্ডওয়্যারটির দেখতে কেমন হওয়া উচিত" বর্ণনা করেন। দেখে মনে হচ্ছে আপনি আপনার অ্যালগরিদমের জন্য বিশেষভাবে তৈরি একটি চিপ তৈরি করছেন।

এটি প্রচুর পরিমাণে গতি বাড়ায় এবং বিদ্যুৎ খরচ হ্রাস করতে পারে। তবে এর অসুবিধাগুলি রয়েছে: বিকাশটি অনেক বেশি সময় নেয় এবং আরও জটিল। আপনাকে সম্পূর্ণ ভিন্ন উপায়ে চিন্তা করতে হবে এবং সফ্টওয়্যারটিতে সোজাভাবে এগিয়ে কাজ করা অ্যালগরিদমগুলি ব্যবহার করতে পারবেন না।

কৃত্রিম নিউরাল নেটওয়ার্কগুলির জন্য এফপিজিএ একটি দুর্দান্ত পছন্দ। এই এলাকায় প্রচুর চলমান গবেষণা চলছে।


প্রকৃতপক্ষে, এফপিজিএ উন্নয়ন প্রায়শই ভেরিলোগ বা ভিএইচডিএল এর মতো ভাষা ব্যবহার করে করা হয় যা প্রয়োগের পরিবর্তে আচরণের বর্ণনা দেয় - এটি সত্য যা কখনও কখনও দরকারী তবে অ্যাসিঙ্ক্রোনাস সিক্যুয়ালি যুক্তির নকশাকে অনেক সময় জটিল করে তুলতে পারে। যদি কেউ প্রয়োগগুলি নির্দিষ্ট করে রাখে তবে প্রচারের বিলম্ব কিছুটা সামঞ্জস্যপূর্ণ হবে তবে আচরণগত ভাষায় এগুলি ইতিবাচক হওয়ার নিশ্চয়তাও দেয় না । এফপিজিএ ডিজাইনের মূল বিষয়টি হ'ল ভাষাগুলি চিপের বিভিন্ন অংশের অনেকগুলি (সম্ভাব্য শত বা হাজার হাজার) একসাথে সহজ আচরণ করতে খুব সহজ করে তোলে।
সুপারক্যাট

13

এটি অ্যালগরিদমের উপর অনেক নির্ভর করে তবে নীতিটি বেশ সহজভাবে ব্যাখ্যা করা যায়।

মনে করুন যে আপনার অ্যালগরিদমের জন্য অনেকগুলি 8-বিট সংখ্যার যোগফল রয়েছে। আপনার সিপিইউতে এখনও প্রতিটি নির্দেশ আনতে হবে, র‌্যাম বা ক্যাশে মেমরির থেকে অপারেন্ডগুলি পেতে হবে, যোগফলটি নির্বাহ করতে হবে, ফলাফলকে ক্যাশে সংরক্ষণ করতে হবে এবং পরবর্তী ক্রিয়াকলাপটি চালিয়ে যেতে হবে। পাইপলাইন সাহায্য করে, তবে আপনার যতগুলি কোর রয়েছে ততগুলি আপনি কেবল একই সাথে একই সময়ে পরিচালনা করতে পারেন।

আপনি যদি এফপিজিএ ব্যবহার করেন, আপনি সমান্তরালভাবে কাজ করে এমন প্রচুর সরল সংযোজনকারীকে বাস্তবায়িত করতে পারেন যা সমান্তরালভাবে হাজার হাজার অঙ্কের ক্রাচ করে। যদিও একটি একক ক্রিয়াকলাপে আরও বেশি সময় লাগতে পারে, আপনার কাছে সমান্তরালতার বিশাল পরিমাণ রয়েছে।

অনুরূপ কাজগুলি করতে আপনি একটি জিজিপিইউ ব্যবহার করতে পারেন, কারণ সেগুলিও অনেকগুলি সরল কোর দ্বারা তৈরি।


জিপিজিপিইউ ব্যবহার করে নিউরাল নেটওয়ার্কগুলির জন্য একটি দুর্দান্ত ইনপুট!
বটনিক

নিউরাল নেটওয়ার্ক এএসআইসিও রয়েছে। ইন্টেল এমন একটি তৈরি করত যা 80 এর দশকে 16 টি নিউরন প্রয়োগ করেছিল।
লাইয়ার বিলিয়া

@ লিয়ারবিলিয়া ভাল আমি তাদের সম্পর্কে কিছুই জানি না :)। আমি কখনও নিউরাল নেটওয়ার্কগুলির সাথে কাজ করি নি, এবং খুব কম এফপিজিএ
ক্লাবচিও

@ ক্লাব্যাচিও সফটওয়্যার নিউরাল নেটওয়ার্ক এমন একটি প্রোগ্রাম যা বেশিরভাগই ভাসমান পয়েন্ট সংখ্যায় অপারেশনগুলি গুণ করে এবং তুলনা করে। বেশিরভাগ ক্ষেত্রে আমার মানে ... 95% বা তার বেশি।
কামিল

প্রচলিত সিপিইউ প্রচুর 8-বিট সংখ্যার সংমিশ্রণের জন্য খুব ভাল কাজ করতে পারে; একটি দ্রুত মেশিনে মৃত্যুদন্ড কার্যকর করার সময় মেমোরি থেকে ডেটা আনার ব্যয়ের দ্বারা প্রাধান্য পাবে (কোড আনতে 99% কোড আসবে)। আরও আকর্ষণীয় উদাহরণটি এমন স্কিম ব্যবহার করে এনকোড করা ডেটা নিয়ে কাজ করবে যার পরিবর্তে "অস্বাভাবিক" ব্যবস্থা বা বিটের ক্রমবিকাশের প্রয়োজন requires উদাহরণস্বরূপ, যদি ভিডিও স্যাম্পলিং ডেটার একটি টুকরা লাল, সবুজ এবং নীল রঙের জন্য ইন্টারলিভ বিটগুলি দেয়, একটি এফপিজিএ সহজেই বিটগুলি পুনর্বিন্যাস করতে পারে; একটি প্রচলিত সিপিইউতে আরও অনেক সমস্যা হবে।
সুপারক্যাট

6

কম্পিউটিং সরঞ্জামগুলির বিশেষজ্ঞের প্রায় 3 টি স্তর রয়েছে:

সিপিইউ (আপনার ল্যাপটপের মতো) এই সকলের মধ্যে সর্বাধিক জেনেরিক। এটি সবকিছু করতে পারে তবে এই বহুমুখিতাটি ধীর গতি এবং উচ্চ বিদ্যুত ব্যবহারের দামে আসে। সিপিইউ যেতে যেতে প্রোগ্রাম করা হয়, নির্দেশাবলী র‍্যাম থেকে আসে। সিপিইউর জন্য প্রোগ্রামগুলি দ্রুত, সস্তা এবং সহজেই লেখা যায় এবং পরিবর্তন করা খুব সহজ।

এফপিজিএ (যার অর্থ ফিল্ড প্রোগ্রামেবল গেট অ্যারে) মাঝারি স্তর। এর নাম থেকেই বোঝা যাচ্ছে যে এটি "ক্ষেত্রের মধ্যে" প্রোগ্রাম করা যেতে পারে, এটি কারখানার বাইরে। এফপিজিএ সাধারণত একবার প্রোগ্রাম করা হয়, এই প্রক্রিয়াটি এর অভ্যন্তরীণ কাঠামো সেট আপ হিসাবে বর্ণনা করা যেতে পারে। এই প্রক্রিয়াটির পরে এটি একটি ছোট কম্পিউটারের মতো আচরণ করে যা আপনি তার জন্য বেছে নিয়েছেন একটি কাজের জন্য। এ কারণেই এটি জেনেরিক সিপিইউর চেয়ে ভাল ভাড়া নেওয়া যায়। প্রোগ্রামিং এফপিজিএ খুব কঠিন এবং ব্যয়বহুল এবং সেগুলি ডিবাগ করা খুব শক্ত।

ASIC (যার অর্থ অ্যাপ্লিকেশন নির্দিষ্ট ইন্টিগ্রেটেড সার্কিট) চূড়ান্ত বিশেষজ্ঞ। এটি একটি এবং একমাত্র একটি কাজের জন্য তৈরি এবং উত্পাদিত একটি চিপ - একটি কাজ এটি অত্যন্ত দ্রুত এবং দক্ষতার সাথে করে। এএসআইসিকে পুনরায় প্রোগ্রাম করার কোনও সম্ভাবনা নেই, এটি কারখানার সম্পূর্ণরূপে সংজ্ঞায়িত হয়ে যায় এবং যখন চাকরীর আর প্রয়োজন হয় না তখন এটি অকেজো হয়। এএসআইসি ডিজাইন করা কেবলমাত্র বৃহত কর্পোরেশনগুলির পক্ষে সামর্থ্য এবং ডিবাগিং ভাল, বেশ অসম্ভব।

আপনি যদি "কোরে" ভাবেন, তবে এটিকে এভাবে দেখুন: সিপিইউতে 4, 6, সম্ভবত 8 টি বড় কোর যা সবকিছু করতে পারে। ASICS এ প্রায়শই হাজার হাজার কোর থাকে তবে খুব ক্ষুদ্র হয়, কেবল একটি জিনিসেই সক্ষম।

আপনি বিটকয়েন খনির সম্প্রদায়টি দেখতে পারেন। তারা SHA256 হ্যাশ করে।

  • সিপিইউ কোর আই 7: 0.8-1.5 এম হ্যাশ / এস
  • এফপিজিএ: 5-300 এম হ্যাশ / এস
  • ASIC: এক 160-চিপ ডিভাইসের জন্য প্রতি 1000 ক্ষুদ্র চিপ, 2000000 এম (হ্যাঁ, 2T) হ্যাশ / এস প্রতি 12000M হ্যাশ / গুলি

অবশ্যই, এই এএসআইসি বাচ্চাদের ভর উত্পাদন হওয়ার সময় প্রায় 2000 ডলার ব্যয় হয় তবে এটি কোনও জ্যাক-অফ-অল-ট্রেড কীভাবে বিশেষজ্ঞের বিরুদ্ধে ভাড়া নিতে পারে সে সম্পর্কে আপনাকে ধারণা দেয়।

একমাত্র প্রশ্ন: এফপিজিএ ডিজাইনিংয়ের জন্য যে পরিমাণ ব্যয় হবে তার চেয়ে বেশি সঞ্চয় আনতে পারে? অবশ্যই, এটি একটি ল্যাপটপে চালানোর পরিবর্তে, আপনি এটি 20 পিসি চালানোর চেষ্টা করতে পারেন।


হ্যাশিং যদিও খুব বিশেষ ক্ষেত্রে; নোট করুন যে স্ক্রিপ্ট-ভিত্তিক কয়েনগুলি (ইচ্ছাকৃতভাবে) বিশেষ হার্ডওয়্যার দ্বারা খুব ত্বরান্বিত হয় না।
pjc50

1
& ASIC ডিবাগিং সাধারণত উত্পাদন করতে শিপিংয়ের আগে সিমুলেশনে পরিচালনা করা হয়। সুতরাং এটি উত্পাদন থেকে সাধারণত 6 মাস বা তার বেশি হয়। উত্পাদনের পরে বাগগুলি নির্ণয় করা .. ব্যয়বহুল তবে অসম্ভব নয়।
pjc50

এবং এটি শক্ত হলেও বাস্তবে খুব শক্ত হতে পারে, এমন কিছু বিষয় রয়েছে যেমন বাউন্ডারি স্ক্যান, জেটিএল পরীক্ষা এবং এফআইবি ব্যবহারের প্রত্যক্ষ কৌশল ইত্যাদি। সুতরাং এগুলি ডিবাগ করা অসম্ভব থেকে দূরে, আপনি কেবল কি করছেন তা জানতে হবে । এখন একটি দিন এএসআইসি একটি ডিজাইন প্রবাহকে আরও উল্লেখ করে (এইচডিএল, সংশ্লেষ, পিঅ্যান্ডআর) যে এটি আসলে একটি আসল ডিভাইসকে বোঝায় যেহেতু বেশিরভাগ ডিভাইসগুলি এএসআইসির এআরএম প্রসেসরের মতো জিনিসগুলি অন্তর্ভুক্ত করে।
স্থানধারক

@ pjc50 হ্যাঁ, এটি আমার বক্তব্য ছিল - বিশেষ ক্ষেত্রে, গতির পার্থক্য দুর্দান্ত। তবে স্ক্রিপ্ট অ্যাসিক্স এখনও সিপিইউ এবং জিপিইউ pwn করে। মিলিয়ন ফ্যাক্টর দ্বারা নয় (শা হিসাবে), তবে এখনও 100 এরও বেশি ভাল।
এজেন্ট_এল

@ স্থানধারক হ্যাঁ, তবে আপনি যদি বাগটি খুঁজে পান তবে ইতোমধ্যে প্রস্তুতকৃত সমস্ত চিপগুলির এটি খুব বেশি ব্যবহার হয় না। আমি "ডিবাগিং" বোঝাতে চাইছিলাম "বাগটি সরানোর জন্য" কেবল "এখানে এটি নেই"।
এজেন্ট_এল

5

হ্যাঁ, এফপিজিএ কিছু স্পিফিকফিক টাস্কে আধুনিক সিপিইউ (ইনটেল আই 7 এর মতো) ছাড়িয়ে যেতে পারে তবে নিউরাল নেটওয়ার্কের কার্যকারিতা উন্নত করার জন্য আরও সহজ এবং সস্তা পদ্ধতি রয়েছে।

কম দামে - আমি সম্পূর্ণ প্রচেষ্টা বলতে চাইছি, এফপিজিএ আইসি ব্যয় নয়, তবে এফপিজিএর জন্য খুব দ্রুত মেমরি (আপনার নিউরাল নেটওয়ার্কের জন্য এটি প্রয়োজন হবে) এবং পুরো উন্নয়ন প্রক্রিয়া।

  1. এসএসই ব্যবহার করুন - আমি প্রায় সহজ নিউরাল নেটওয়ার্ক বাস্তবায়ন দেখেছি 2-3x আরও ভাল পারফরম্যান্স সহ। আপনার ল্যাপটপে যদি কোনও ডেডিকেটেড জিপিইউ না থাকে তবে এটি ভাল ধারণা হতে পারে।

    ভিনসেন্ট ভানহোক এবং অ্যান্ড্রু সিনিয়র সিপিইউতে স্নায়বিক নেটওয়ার্কগুলির গতি উন্নতি করছে

  2. জিপিজিপিইউ ব্যবহার করুন (প্রক্রিয়াকরণের ইউনিট গ্রাফিক্স উপর সাধারণ কম্পিউটিং) - আমার মনে হয় আপনি জিফোর্স 730M মত মাঝারি বর্গ ল্যাপটপ GPU এর মাধ্যমে 100-200x কর্মক্ষমতা বুস্ট archieve পারবেন না।

    এখানে নিউরাল নেটওয়ার্ক বাস্তবায়ন (এবং ফ্রি কোড)। এটি এনভিডিয়া চুদা ব্যবহার করে।

    জিপিজিপিইউ পদ্ধতির বিষয়টি খুব পরিস্রাবণযোগ্য, যদি কোনও মুহূর্তে আপনি বুঝতে পারেন যে আপনার আরও কম্পিউটিং পাওয়ার প্রয়োজন - আপনি কেবলমাত্র আরও শক্তিশালী জিপিইউ বা এমনকি এনভিডিয়া টেসলা কে 80 এর সাথে ডেস্কটপ কম্পিউটার ব্যবহার করতে পারেন 4992 কোর (এটি ব্যয়বহুল)।


1
এখানে সমস্যাটি হল পারফরম্যান্সকে সংজ্ঞায়িত করা। যদি আমরা দ্রুত বোঝায় তবে হ্যাঁ, এফপিগা স্বাভাবিক সিপাসের চেয়ে দ্রুত হতে পারে। যাইহোক, fpga সিপিইউ এর মতো নমনীয় নয়, তারা কেবলমাত্র একটি পূর্বনির্ধারিত টাস্ক কার্যকর করার জন্য ডিজাইনার্ড design অন্য কোনও কাজ সম্পাদনের অর্থ তার অভ্যন্তরীণ তারের পরিবর্তন করা হবে যা অন্য একটি fpga বাস্তবায়ন করে
Gianluca Ghettini
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.