কোনও এফপিজিএ কীভাবে সিপিইউকে ছাড়িয়ে যাবে?


55

বিট-কয়েন খনন, বৈদ্যুতিন বাণিজ্য এবং প্রোটিন ভাঁজ করার মতো কাজ করে এমন সিস্টেমগুলির কার্যকারিতা উন্নত করতে লোকেরা এফপিজিএ ব্যবহার করছে বলে আমি শুনেছি।

কোনও সিপিইউ যখন সিপিইউ কমপক্ষে কমপক্ষে একটি ক্রম (ঘড়ির গতির দিক দিয়ে) দ্রুত চালিত হয় তখন পারফরম্যান্সে কোনও সিপিইউয়ের সাথে কীভাবে প্রতিযোগিতা করতে পারে?


13
এফপিজিএ সবকিছু একবারে করে।
ইগনাসিও ওয়াজকেজ-আব্রামস

উত্তর:


48

সিপিইউ হ'ল সিক্যুয়াল প্রসেসিং ডিভাইস। তারা একটি অ্যালগরিদমকে ক্রমান্বয়ে ক্রিয়াকলাপ হিসাবে ভেঙে ফেলে এবং একবারে এগুলি কার্যকর করে।

এফপিজিএ সমান্তরাল প্রক্রিয়াকরণ ডিভাইসগুলি (বা হিসাবে কনফিগার করা যায়)। একটি সম্পূর্ণ অ্যালগরিদম ঘড়ির একক টিকের মধ্যে সঞ্চালিত হতে পারে, বা সবচেয়ে খারাপ ক্ষেত্রে, ক্রমিক প্রসেসরের তুলনায় অনেক কম ক্লক টিকিট। বর্ধিত যুক্তিগত জটিলতার জন্য অন্যতম ব্যয় হ'ল ডিভাইসটি আটকে রাখা যায় এমন একটি নিম্ন সীমা।

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

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

সুবিধাগুলির জন্য আপনি যে মূল্য প্রদান করবেন তা হ'ল বিদ্যুৎ খরচ এবং। 'র।


2
+1 টি; এফপিজিএগুলি সিপিইউগুলির মতো গতিশীল নয়, এ কারণেই সিপিইউগুলি সাধারণত পিসিগুলির জন্য উপযুক্ত হয়
নিক উইলিয়ামস

17
"সুবিধাগুলির জন্য আপনি যে মূল্য প্রদান করবেন তা হ'ল বিদ্যুৎ খরচ এবং এটি $$$ ' - এটি প্রায়শই সত্য, তবে আপনি অনেক অ্যালগরিদমের জন্য নিম্ন-প্রান্তে $ 50 জিলিনিক্স স্পার্টান -6 সহ একটি উচ্চ-প্রান্তের বহু-$ 1000 ইন্টেল জিয়ান মেশিনকে স্কোয়ারালি স্ক্রয় করতে পারেন। তবে এতে সাধারণত ইঞ্জিনিয়ারিংয়ের অনেক সময় লাগে এবং আপনি খুব কাস্টম ডিজাইন দিয়ে শেষ করতে পারেন যা কেবলমাত্র একটি অ্যাপ্লিকেশনের জন্য কাজ করে এবং পরিবর্তন করা শক্ত to সুতরাং ট্রেড অফ কেবল শক্তি এবং অর্থ নয়, তবে অ্যালগরিদম বিকাশের সময়, পুনরায় ব্যবহারযোগ্যতা এবং নমনীয়তা। (যদিও আপনি সময় == টাকা বিতর্ক করতে পারেন))
wjl

মার্কেট, আপনার শেষ বাক্যটি সম্পর্কে, এফপিজিএগুলি কি সিপিইউগুলির তুলনায় খুব কম শক্তি নয়? সিপিইউ এবং এফপিজিএ উভয়ের জন্য বিস্তৃত ডিভাইস রয়েছে তবে আমরা যদি বিট-কয়েন খনির মতো জিনিসের জন্য ব্যবহৃত হয় সেগুলি দেখি, তবে সিপিইউগুলি সেই কাজের জন্য এফপিজিএর চেয়ে ক্ষুধার্ত ক্ষুধার্ত নয় n't ব্যবহার করেন নি?
ডেভিড গার্ডনার

4
@ ডেভিড: বিটকয়েন খনির বিষয়ে কথা বলার সময়, প্রাসঙ্গিক মেট্রিকটি ওয়াট প্রতি হ্যাশের সংখ্যা। মার্কেট সামগ্রিক বিদ্যুৎ খরচ সম্পর্কে কথা বলছে। অর্থাত, প্রদত্ত এফপিজিএ একটি সাধারণ সিপিইউর ক্ষমতার পরিমাণ 3x ব্যবহার করতে পারে তবে বিটকয়েন খনির ক্ষেত্রে দ্রুত 3x এর চেয়ে অনেক বেশি হতে পারে; বিটকয়েনের জন্য তাই এটি একটি জয়।
বিলি ওনিল

2
@ বিলি: ওয়াট প্রতি সেকেন্ডে নয় হ্যাশের সংখ্যা, প্রতি ওয়াট নয়।
পাওলো ইবারম্যান

34

মার্কেটের বেশিরভাগ ক্ষেত্রে এটি সঠিকভাবে রয়েছে তবে আমি আমার 2 সেন্ট এখানে ফেলতে যাচ্ছি:

কল্পনা করুন যে আমি আপনাকে বলেছি যে আমি একটি প্রোগ্রাম লিখতে চেয়েছিলাম যা 32-বিট পূর্ণসংখ্যার ভিতরে বিটের ক্রমটিকে বিপরীত করে দেয়। এটার মতো কিছু:

int reverseBits(int input) {
    output = 0;
    for(int i = 0;i < 32;i++) {
        // Check if the lowest bit is set
        if(input & 1 != 0) {
            output = output | 1; // set the lowest bit to match in the output!
        }

        input = input >> 1;
        output = output << 1;
    }
    return output;
}

এখন আমার বাস্তবায়ন মার্জিত নয়, তবে আমি নিশ্চিত যে আপনি এই বিষয়ে সম্মত হবেন যে এটি করার জন্য কিছু সংখ্যক অপারেশন জড়িত থাকবে এবং সম্ভবত কিছুটা লুপ থাকবে। এর অর্থ সিপিইউতে আপনি এই ক্রিয়াকলাপটি বাস্তবায়নের জন্য 1 টিরও বেশি চক্র ব্যয় করেছেন।

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

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

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

সমান্তরালতা অপর অংশ যা চিহ্নিত করে এবং এটিও গুরুত্বপূর্ণ, মূল বিষয়টি যখন কোনও এফপিজিএ অপারেশন সঞ্চালনের জন্য প্রয়োজনীয় চক্রগুলির ক্ষেত্রে সিপিইউতে ইতিমধ্যে ব্যয়বহুল কিছু ছিল ralle আপনি একবার বলতে শুরু করলেন "আমি আমার সিপিইউতে ১০,০০,০০০ চক্র গ্রহণকারী একটি টাস্ক আমি 10 টি এফপিজিএ চক্রের মধ্যে সম্পাদন করতে পারি এবং আমি একবারে সমান্তরাল 4 আইটেমগুলিতে এই কাজটি করতে পারি," আপনি সহজেই দেখতে পারবেন কেন এফপিজিএ অনেকগুলি হেক হতে পারে be সিপিইউর চেয়ে দ্রুত!

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


2
বিটগুলি বিপরীত করার উদাহরণের জন্য (এবং অন্যান্য সমস্ত বিট অদলবদল / নির্বাচনের কাজগুলি) এটি সত্যই 1 টি ঘড়ির চক্র নেয় না, এটি 0 নেয় your আপনার উদাহরণস্বরূপ, একটি ল্যাচে ডেটা সংরক্ষণ করতে 1 ঘড়ি চক্র লাগে , যা এটি নয় একই অপারেশন। আপনি বিটগুলি বিপরীত করুন বা না থাকুন এটির জন্য 1 ঘড়ি চক্র লাগে। বিটগুলি উল্টানোর অপারেশনটি 0 টি ঘড়ির চক্র; ওভারহেড নেই, কেবল ভিন্ন রাউটিং। পার্থক্যটি কেবল শব্দার্থবিজ্ঞানের নয়, বিশেষত যখন আপনি জিনিসগুলি যুক্ত করা শুরু করেন। উদাহরণস্বরূপ, 32 বিট শব্দটিকে 3 বিট দিয়ে সরিয়ে নিতে, তারপরে প্রতিটি অন্য স্তন্যপান পরিবর্তন করতে, তারপরে বিপরীত হতে কতক্ষণ সময় লাগে?
wjl

1
"হাইব্রিড এফপিজিএ-সিপিইউ মডিউল" - এগুলি দীর্ঘদিন ধরে বাজারে রয়েছে ( আধুনিক সাফল্যের জন্য xilinx.com/products/silicon-devices/soc/zynq-7000/index.htm দেখুন ) তবে তা ছাড়াও বিশেষ সমর্থন, সমন্বিত সফ্টওয়্যার এবং এইচডিএল সাধারণত ফ্যাব্রিক এ এফপিজিএ এর ভিতরে একটি নরম সিপিইউ প্রয়োগ করে হয়।
wjl

@wjl আপনি ঠিক বলেছেন যে প্রযুক্তিগতভাবে অপারেশনটি চালাতে কোনও চক্র লাগে না। আমি যুক্তি দিয়ে বলব যে আপনার উদাহরণটি কেবল শব্দার্থবিজ্ঞানের চেয়ে আলাদা যদিও বেশিরভাগ কারণেই এই তিনটি অপারেশনটি যৌক্তিকভাবে একটি নির্দিষ্ট বিট প্যাটার্নে অনুবাদ করে (যেমন আমি বি 1 বি 2 বি 3 বি 4 দিয়ে শুরু করি এবং আমি বি 3 বি 1 বি 4 বি 2 দিয়ে শেষ করি)। পুরো উত্তরটিতে এটি আমার মত ছিল। আমি উল্লেখ করার চেষ্টা করছিলাম যে কোনও ক্রিয়াকলাপকে ধারাবাহিক পদক্ষেপ হিসাবে বর্ণনা করা কেবলমাত্র তখনই প্রয়োজনীয় যখন আপনার কোনও নির্দিষ্ট নির্দেশ সেট / গেটের ব্যবস্থা থাকবে।
কিট স্কুজ

@wjl: ডেভিড-গার্ডনার যেভাবে প্রশ্নটি জিজ্ঞাসা করেছেন, তিনি মনে করছেন "সিপিইউ" একটি ইন্টেল বা এএমডি x86 / x86_64 অত্যন্ত ক্লকড, পাইপলাইনযুক্ত এবং অনুকূলিত সিপিইউয়ের সমতুল্য। অনেকগুলি নরম "সিপিইউ" রয়েছে তবে আমি এফপিজিএতে বসার জন্য তৈরি করা ডিজাইনগুলির মধ্যে একটিও আই 7 এর মতো আটকাতে পারি না, তারা প্রায় অপ্টিমাইজড বা সক্ষমও নয়। হাইব্রিডের ক্ষেত্রে, আমি আরও এরকম কিছু বোঝাতে চাইছিলাম : নিউজরুম.ইনটেল.ডোকস / ডকস-15১২ যা আপাতভাবে উপস্থিত রয়েছে
কিট স্কুজ

1
জিনক আসলেই কোনও প্রসেসরের খুব খারাপ নয় (এআরএম কর্টেক্স-এ 9 - একই জিনিস যা ট্যাবলেট কম্পিউটারগুলি চালিত করে), তবে আমি সম্মত হই যে উচ্চ গতির x86_64 সহ একটি সংহত এফপিজিএ পাওয়া আরও ভয়ঙ্কর হবে। =)
wjl

25

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

এফপিজিএ এবং সিপিইউয়ের মধ্যে সাধারণ ডিনোমিনেটর কী? এটি উভয়ই সিলিকনের উপরে নির্মিত। এবং কিছু ক্ষেত্রে আক্ষরিকভাবে একই সিলিকন প্রক্রিয়া হয়।

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

সেই সিলিকনকে কার্যকর সিপিইউতে পরিণত করতে কী লাগে তা বিবেচনা করুন। এখানে সেই লক্ষ্যের জন্য প্রয়োজনীয় বিমূর্ত স্তরগুলির কিছুটা সরল দৃশ্য রয়েছে:

  1. প্রথমে আমাদের মধ্যে ইঞ্জিনিয়ার রয়েছে যারা সিলিকন থেকে ট্রানজিস্টর তৈরি করতে জানেন। তারা জানেন যে ক্ষুদ্র ক্ষুদ্র ট্রানজিস্টরগুলি কীভাবে সিপ পাওয়ার এবং 10 বা এমনকি 100 এর গিগা হার্টজের হারে স্যুইচ করা যায় এবং তারা কীভাবে মৌমাছির ট্রানজিস্টর ডিজাইন করতে পারেন যা একটি আইসি প্যাকেজ থেকে এবং কোনও পিসিবি জুড়ে প্রেরণের জন্য পর্যাপ্ত শক্তি সহ সিগন্যালগুলি চালনা করতে পারে they অন্য চিপ।

  2. তারপরে আমাদের কাছে ডিজিটাল লজিক ডিজাইনার রয়েছে যারা জানেন যে কীভাবে এই ট্রানজিস্টরকে একসাথে শত শত বিভিন্ন যুক্তি কোষ সহ লাইব্রেরিতে স্থাপন করা যায় to কয়েকটি নাম দেওয়ার জন্য লজিক গেটস, ফ্লিপ ফ্লপ, ম্যাক্স এবং অ্যাড্রেস। সমস্ত কনফিগারেশন বিভিন্ন।

  3. এরপরে আমাদের মধ্যে ইঞ্জিনিয়ারদের বিভিন্ন গ্রুপ রয়েছে যারা জানেন যে কীভাবে এই ডিজিটাল (এবং কখনও কখনও অ্যানালগ) ব্লকগুলি একসাথে উচ্চ গতির ট্রান্সসিভারস, মেমরি নিয়ামক, শাখার ভবিষ্যদ্বাণীকারী, এএলইউ ইত্যাদি হিসাবে উচ্চ স্তরের ফাংশনাল ব্লকগুলি তৈরি করতে হয় know

  4. তারপরে আমাদের কাছে সিপিইউ ডিজাইনাররা স্থিতিশীল উচ্চ প্রান্তের সিপিইউ ডিজাইনগুলি সেই সমস্ত কার্যকরী ইউনিটগুলিকে একটি সম্পূর্ণ সিস্টেমে টেনে নিয়ে by

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

  1. অ্যাসেম্বলি কোডটি সংকলন করে আমাদের কাছে একটি সি সংকলক থাকতে পারে (সম্ভবত কিছু মধ্যবর্তী উপস্থাপনার মাধ্যমে)
  2. অবজেক্ট ওরিয়েন্টেড ল্যাঙ্গুয়েজ পেতে আমরা সি এর উপরে আরেকটি বিমূর্ততা যুক্ত করতে পারি
  3. আমরা এমনকি সি বা সি ++ এর উপরে একটি ভার্চুয়াল মেশিনও লিখতে পারি যাতে জাভা বাইট কোডের মতো জিনিসগুলি ব্যাখ্যা করতে পারি

এবং বিমূর্ত স্তরগুলি সেখান থেকে যেতে পারে। এখানে গুরুত্বপূর্ণ বিষয়টি হ'ল st বিমূর্ত স্তরগুলি একটি সিপিইউ ভিত্তিক সিস্টেম উত্পন্ন করতে একত্রিত যা ব্যাপকভাবে স্কেল করে এবং একটি কাস্টম সিলিকন ডিজাইনের ক্ষুদ্র ভগ্নাংশের জন্য ব্যয় করে।

তবুও, এখানে তৈরি করা গুরুত্বপূর্ণ বিষয়টি হ'ল প্রতিটি বিমূর্ততা নিজেই একটি ব্যয় বহন করে। ট্রানজিস্টার ডিজাইনার প্রতিটি ব্যবহারের ক্ষেত্রে নিখুঁত ট্রানজিস্টর তৈরি করে না। তিনি একটি যুক্তিসঙ্গত গ্রন্থাগার তৈরি করেন এবং তাই কখনও কখনও ট্রানজিস্টর ব্যবহার করা হয় যা হাতের কাজের জন্য সত্যই প্রয়োজনের তুলনায় খানিকটা বেশি শক্তি বা কিছুটা বেশি সিলিকন খরচ করে। এবং একইভাবে যুক্তি ডিজাইনাররা প্রতিটি সম্ভাব্য লজিক সেল তৈরি করে না। তারা একটি 4 ইনপুট ন্যান্ড গেট এবং একটি 8 ইনপুট ন্যান্ড গেট তৈরি করতে পারে তবে অন্য ইঞ্জিনিয়ারের যখন 6 ইনপুট ন্যানডের প্রয়োজন হয় তখন কী ঘটে? তিনি একটি 8 ইনপুট ন্যান্ড গেট ব্যবহার করেন এবং 2 টি অব্যবহৃত ইনপুটগুলি বন্ধ করে দেন যার ফলস্বরূপ সিলিকন সংস্থান হারিয়েছে এবং ক্ষমতার শক্তি রয়েছে। এবং তাই এটি বিমূর্ততার শৃঙ্খলে যায়। প্রতিটি স্তর আমাদের জটিলতাগুলি পরিচালনা করার একটি উপায় দেয়,

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

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

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

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


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

21

অন্য উত্তরগুলি সমস্ত সঠিক হলেও, তাদের কেউই এখনও আপনার প্রশ্ন থেকে বিটকয়েন খনির উদাহরণটিকে সম্বোধন করে না, যা প্রকৃতপক্ষে একটি শালীন উদাহরণ। বিটকয়েন খনির মধ্যে বারবার ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন গণনা করা হয়, SHA-256 এর ফলাফলের অন্য SHA-256 গণনার ফলাফল, যেখানে কেবলমাত্র একটি একক 32-বিট পূর্ণসংখ্যার পরিবর্তন হয়, যতক্ষণ না ফলাফলের হ্যাশটির নির্দিষ্ট বৈশিষ্ট্য থাকে। প্রতিটি SHA-256 এ 32 টি-বিট সংযোজন, বিটশিফ্ট এবং আরও কিছু বিট-ম্যাংলিং ক্রিয়াকলাপ জড়িত একই অ্যালগরিদমের 64 টি পুনরাবৃত্তি থাকে।

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

এফপিজিএর মতো কনফিগারযোগ্য হার্ডওয়্যারগুলিতে, আপনি কেবলমাত্র এই 2% বাস্তবায়ন করেন এবং কোড সম্পাদন সম্পর্কে সমস্ত কিছু ভুলে গিয়ে গেটগুলি ডিজাইন করে প্রায়শই পুনরাবৃত্তি হওয়া সাব-ফাংশনগুলির প্রতিটিকে গণনা করার জন্য। পাইপলাইনযুক্ত যে এগুলির প্রত্যেকটি পরের প্রতিটি ঘড়ির সিলিতে ফলাফল পাস করে এবং 128 বার পুনরাবৃত্তি করে (এবং কিছু বিশেষ অতিরিক্ত যুক্তি দিয়ে যেখানে প্রতিটি SHA-256 শুরু হয় এবং শেষ হয়), আপনি প্রতিটি ঘড়ি চক্রটির ফলাফল পেয়ে যাবেন (সম্ভবতঃ একটি এফপিজিএতে প্রতি সেকেন্ডে 100 মিলিয়ন হ্যাশগুলি এর চেয়ে সহজ লজিকের জন্য 300 মেগাহার্জ সমর্থন করার জন্য বিজ্ঞাপন দেওয়া হয়েছিল) আধুনিক সিপিইউতে, আপনি প্রতি প্রতি কয়েক হাজার ঘড়ির চক্রের জন্য একটি ফলাফল আশা করতে পারেন, বলুন মাল্টি-কোর মাল্টিতে প্রতি সেকেন্ডে 10 মিলিয়ন হ্যাশ -জিএইচজেড সিপিইউ।

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


3
সিলিকন ব্যবহার সম্পর্কে এটি একটি খুব ভাল পয়েন্ট।
মার্কেট

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

3

উপরের উত্তরগুলি সঠিক হওয়ার সাথে সাথে কেন এফপিজিএ (এবং কাস্টম এএসআইসি) বিশেষত বিটকয়েন গণনার জন্য ভাল about

আসল সুবিধাটি হ'ল SHA-256 গণনাগুলির একটি বৃহত অনুপাত হ'ল যৌক্তিক ক্রিয়াকলাপ (উদাহরণস্বরূপ, বিট শিফট) যা ওয়্যারিংয়ে করা যায়। এইভাবে করা হয়ে গেলে, তাদের 0 টি ঘড়ির চক্র প্রয়োজন require

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

এএসআইসি চিপস এফপিজিএগুলির তুলনায় বেশি শক্তি দক্ষ, তাই তারা একই কোডটি আরও সস্তায় কার্যকর করতে পারে। আপনি আরও কার্যকর করার ইউনিটগুলিকে আরও দ্রুত তৈরি করতে ক্র্যাম করতে পারেন। অসুবিধাটি হ'ল একটি কাস্টম ASIC তৈরি করার ব্যয়টি খুব বেশি তাই উত্পাদন খরচটি কাটাতে আপনাকে বেশ কয়েকটি চিপ বিক্রি করতে হবে।

জিপিইউগুলি বিটকয়েনগুলি তৈরিতেও ব্যবহৃত হয় তবে তারা শক্তি-দক্ষতার তুলনায় এফপিজিএ এবং কাস্টম এএসআইসিকে হারিয়ে ফেলছে।


আপনি যদি মনিরো হ্যাশিং অ্যালগরিদম ওরফে ক্রিপ্টোনাইটের দিকে তাকান, আপনি দেখতে পাবেন যে এফপিজিএ প্রয়োগটি এলোমেলোভাবে (2 এমবি) অ্যাক্সেস করার জন্য উচ্চ পরিমাণের মেমরির প্রয়োজনের কারণে অসম্ভবের কাছে রয়েছে। এই ক্ষেত্রে একটি সিপিইউর সুবিধা রয়েছে।
lucas92
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.