কীভাবে RK3588 NPU সফ্টওয়্যার স্ট্যাক একসাথে ফিট করে৷
Rockchip-এর RKNN সফ্টওয়্যার স্ট্যাক মডেল প্রস্তুতিকে ডিভাইসে এক্সিকিউশন থেকে আলাদা করে৷ RKNN-Toolkit2 রূপান্তর এবং মূল্যায়ন টুল প্রদান করে। RKNN-Toolkit-Lite2 সমর্থিত টার্গেট প্ল্যাটফর্মে একটি পাইথন ইন্টারফেস সরবরাহ করে, যখন RKNN রানটাইম C/C++ ইন্টারফেস সরবরাহ করে। কার্নেল ড্রাইভার রানটাইমকে NPU এর সাথে সংযুক্ত করে। আপনার মডিউলের জন্য সরবরাহ করা বোর্ড সমর্থন প্যাকেজের সাথে এই উপাদানগুলির সামঞ্জস্যতা পরীক্ষা করুন।
একটি দরকারী স্থাপনার রেকর্ড বোর্ড এবং SoM সংশোধন, Linux ছবি, ড্রাইভার, রানটাইম, রূপান্তর টুল সংস্করণ, আসল মডেল এবং রূপান্তরিত মডেল সনাক্ত করে। মডেল আর্টিফ্যাক্টের পাশে বিল্ড স্ক্রিপ্ট এবং প্রিপ্রসেসিং সেটিংস সংরক্ষণ করুন। একটি ফাইলের নাম যেমন detector.rknn কেন একটি স্থাপনা অন্যটির থেকে আলাদাভাবে আচরণ করে তা একা ব্যাখ্যা করতে পারে না।
ধাপ 1: রূপান্তরের আগে একটি রেফারেন্স স্থাপন করুন
একটি প্রতিনিধি বৈধতা সেটে মূল মডেল চালান। কাঁচা আউটপুট এবং অ্যাপ্লিকেশন মেট্রিক সংরক্ষণ করুন যা গুরুত্বপূর্ণ: শ্রেণীবিভাগের নির্ভুলতা, সনাক্তকরণের গুণমান বা অন্য একটি টাস্ক-নির্দিষ্ট পরিমাপ। ডিটেক্টরের জন্য, লেবেল অর্ডারিং, কনফিডেন্স থ্রেশহোল্ড এবং পোস্টপ্রসেসিং সেটিংস সংরক্ষণ করুন। এটি রূপান্তরিত মডেলের তুলনা বিন্দু হয়ে ওঠে।
সম্পূর্ণ ইনপুট চুক্তি লিখুন। মাত্রা, ব্যাচের আকার, আরজিবি বা বিজিআর অর্ডারিং, লেআউট, সংখ্যাসূচক পরিসীমা, স্বাভাবিককরণ, আকার পরিবর্তন এবং প্যাডিং অন্তর্ভুক্ত করুন। একটি সঠিক মডেল খারাপ ফলাফল দিতে পারে যদি অ্যাপ্লিকেশান লেটারবক্স প্রশিক্ষণ থেকে আলাদাভাবে একটি চিত্র তৈরি করে বা অফসেটকে দুবার বিয়োগ করে। ঠিক ততটাই সাবধানে নথিভুক্ত নেটওয়ার্কের বাইরে পোস্টপ্রসেসিং চালিয়ে যান।
Rockchip ব্যবহার করুন RKNN মডেল চিড়িয়াখানা একটি প্রারম্ভিক বিন্দু হিসাবে যখন এটি একটি মিলিত মডেল এবং লক্ষ্য অন্তর্ভুক্ত করে। এর রূপান্তর এবং অনুমান উদাহরণগুলি অনুমান করার চেয়ে বেশি কার্যকর যে কোনও রপ্তানি করা নেটওয়ার্ক অপরিবর্তিত কাজ করবে। একটি পরিচিত সংগ্রহস্থল সংশোধন নির্বাচন করুন এবং সেই নির্দিষ্ট উদাহরণের জন্য নির্দেশাবলী অনুসরণ করুন।
ধাপ 2: মডেলটি রূপান্তর করুন এবং অপারেটর সমর্থন চেক করুন
- লক্ষ্য মেলে। RK3588 টার্গেট এবং বোর্ডের ইমেজের সাথে সামঞ্জস্যপূর্ণ একটি টুলচেন নির্বাচন করুন।
- গ্রাফ পরিদর্শন. রপ্তানিকৃত মডেলের প্রকৃত ক্রিয়াকলাপের জন্য আকার, প্রিপ্রসেসিং, আউটপুট এবং সমর্থন নিশ্চিত করুন।
- একটি রেফারেন্স রূপান্তর তৈরি করুন। সেই গ্রাফ এবং সফ্টওয়্যার সংস্করণ দ্বারা সমর্থিত নির্ভুলতা বিকল্পগুলি ব্যবহার করুন৷
- সম্পূর্ণ বিল্ড লগ পড়ুন. ক্যামেরা অধিগ্রহণ বা একটি ব্যবহারকারী ইন্টারফেস যোগ করার আগে ব্যর্থতাগুলি সমাধান করুন এবং সতর্কতাগুলি তদন্ত করুন৷
- আউটপুট তুলনা করুন। একই পোস্টপ্রসেসিং সহ মূল এবং রূপান্তরিত মডেলগুলির মাধ্যমে একই ইনপুটগুলি চালান৷
একটি অসমর্থিত অপারেশনের জন্য একটি ভিন্ন রপ্তানি, গ্রাফ পুনর্লিখন বা একটি স্পষ্ট CPU প্রক্রিয়াকরণ পর্যায়ে প্রয়োজন হতে পারে। অনুমান করবেন না যে রানটাইম প্রতিটি অসমর্থিত স্তরকে স্বচ্ছভাবে কার্যকর করবে। যদি কাজের চাপের কিছু অংশ CPU-তে চলে যায়, কর্মক্ষমতা পরিমাপে স্থানান্তর এবং সিঙ্ক্রোনাইজেশন অন্তর্ভুক্ত করুন।
ধাপ 3: আপনার নির্ভুলতার প্রয়োজন অনুযায়ী INT8 মূল্যায়ন করুন
কোয়ান্টাইজেশন সংখ্যাগত উপস্থাপনা পরিবর্তন করে। যখন নির্বাচিত রূপান্তর প্রবাহ ক্রমাঙ্কন ডেটা ব্যবহার করে, তখন স্থাপনার প্রতিনিধি ইনপুট নির্বাচন করুন: আলো, বস্তুর আকার, পটভূমি এবং অপারেটিং অবস্থা। ফলাফল মূল্যায়ন করার জন্য একটি পৃথক বৈধতা সেট রাখুন। একটি রূপান্তর যা সফলভাবে সম্পন্ন হয় তার জন্য এখনও একটি নির্ভুলতা পরীক্ষা প্রয়োজন।
দুটি টেনসরের মধ্যে পার্থক্য নয় শুধুমাত্র অ্যাপ্লিকেশন আউটপুট তুলনা করুন। উদাহরণস্বরূপ, একটি ছোট সংখ্যাগত পরিবর্তন একটি আত্মবিশ্বাসের থ্রেশহোল্ড জুড়ে একটি সনাক্তকরণকে সরিয়ে দিতে পারে। কঠিন কেস, কয়েকটি উদাহরণ এবং শর্ত সহ ক্লাস পরিদর্শন করুন যেখানে আসল মডেলটি ইতিমধ্যেই প্রান্তিক ছিল। যদি নির্ভুলতা গ্রহণযোগ্যতার সীমার নিচে পড়ে, হার্ডওয়্যার পরিবর্তন করার আগে ক্রমাঙ্কন কভারেজ এবং প্রিপ্রসেসিং পুনরায় দেখুন।
দ ONNX রানটাইম কোয়ান্টাইজেশন ডকুমেন্টেশন সংখ্যাসূচক ট্রেড-অফ এবং নির্ভুলতা তদন্তের জন্য দরকারী পটভূমি। RKNN রূপান্তর বিকল্প এবং সমর্থিত নির্ভুলতা এখনও নির্বাচিত প্রকাশের জন্য Rockchip এর নিজস্ব ডকুমেন্টেশনে চেক করা আবশ্যক৷
ধাপ 4: অনুমান সময়ের চেয়ে বেশি পরিমাপ করুন
ওয়ার্ম-আপের পরে এবং টেকসই দৌড়ের সময় নিয়োজিত কাজের চাপ পরিমাপ করুন। রেকর্ড তাপমাত্রা, পাওয়ার মোড, সমসাময়িক প্রক্রিয়া এবং ঘের বা শীতল ব্যবস্থা। দরকারী ফলাফল হল একটি পুনরুত্পাদনযোগ্য কর্মক্ষমতা খাম, যথার্থতা এবং বিলম্ব সহ, যে শর্তে পণ্যটি কাজ করবে।
| পরিমাপ | এটা কি উত্তর দেয় | কি রেকর্ড করতে হবে |
|---|---|---|
| মডেল নির্বাহের সময়কাল | কতক্ষণ এই রানটাইম কল লাগে? | ইনপুট আকৃতি, নির্ভুলতা, সময়ের সীমানা এবং রানটাইম সংস্করণ |
| এন্ড-টু-এন্ড লেটেন্সি | ফলাফল বিতরণ করা হলে পর্যবেক্ষণ কত বছর বয়সী? | ক্যাপচার সময়, প্রিপ্রসেসিং, সারিবদ্ধ, অনুমান এবং আউটপুট সময় |
| টেকসই থ্রুপুট | কতগুলি সম্পন্ন ফলাফল সময়ের সাথে বিতরণ করা হয়? | রান দৈর্ঘ্য, সম্পূর্ণ অনুরোধ এবং ড্রপ বা এড়িয়ে যাওয়া ইনপুট |
| আবেদনের নির্ভুলতা | স্থাপন করা মডেল টাস্ক প্রয়োজনীয়তা পূরণ করে? | বৈধতা সেট, টাস্ক মেট্রিক এবং সিদ্ধান্ত থ্রেশহোল্ড |
| তাপীয় আচরণ | সিস্টেম গরম হওয়ার পরে কি ফলাফল স্থিতিশীল? | পরিবেষ্টিত অবস্থা, শীতল, তাপমাত্রা এবং ঘড়ি যেখানে উপলব্ধ |
একটি দৃষ্টান্তমূলক বাজেট হিসাবে, প্রতি 40 মিসে একটি নতুন ফ্রেম প্রাপ্ত একটি অ্যাপ্লিকেশনকে প্রতি সেকেন্ডে 25 ফ্রেম রাখতে হবে যদি এটি প্রতিটি ফ্রেম প্রক্রিয়া করে। একটি 12 ms অনুমান পরিমাপ সেই বাজেটের বাকি অংশ অধিগ্রহণ, প্রস্তুতি এবং ডেলিভারির জন্য শুধুমাত্র উপযুক্তভাবে নির্ধারিত ডিজাইনে ছেড়ে দেবে। এটি একটি 12 ms ক্যামেরা থেকে ফলাফলের বিলম্ব প্রমাণ করে না৷ এই সংখ্যাগুলি একটি পরিকল্পনার উদাহরণ, পরিমাপ করা ForgeEdge কর্মক্ষমতা নয়৷
সফ্টওয়্যার সময়কালের জন্য একটি একঘেয়ে ঘড়ি ব্যবহার করুন। একটি একক সেরা পর্যবেক্ষণের পরিবর্তে মিডিয়ান এবং টেল লেটেন্সি রিপোর্ট করুন এবং কাঁচা পরিমাপ সংরক্ষণ করুন। বেশ কয়েকটি ক্যামেরার জন্য, ডিকোডিং, চিত্র রূপান্তর, মেমরি আন্দোলন এবং রেকর্ডিং সহ সমস্ত সক্রিয় স্ট্রিমগুলির কাজের চাপের জন্য অ্যাকাউন্ট। একটি সারি যা পুরো পরীক্ষা জুড়ে বৃদ্ধি পায় তা নির্দেশ করে যে গড় ক্ষমতা আগত কাজের চাপের নিচে।
সাধারণ স্থাপনার লক্ষণ
| উপসর্গ | প্রথম তদন্ত |
|---|---|
| সঠিক মডেল, ভুল লেবেল বা বাক্স | রঙের ক্রম, স্বাভাবিককরণ, আকার পরিবর্তন/প্যাডিং, আউটপুট বিন্যাস এবং পোস্টপ্রসেসিং |
| রূপান্তরিত মডেল আরম্ভ করা যাবে না | লক্ষ্য নির্বাচন, রানটাইম/ড্রাইভার সামঞ্জস্য এবং মডেল আর্টিফ্যাক্ট অখণ্ডতা |
| ভালো শর্ট বেঞ্চমার্ক, দুর্বল টেকসই কর্মক্ষমতা | তাপমাত্রা, পাওয়ার মোড, মেমরির চাপ এবং প্রতিযোগী কাজ |
| গ্রহণযোগ্য অনুমান সময়, দৃশ্যত বিলম্বিত ফলাফল | ক্যাপচার বাফারিং, সারি বয়স, কপি এবং আউটপুট সময়সূচী |
| INT8 আউটপুট দরকারী সনাক্তকরণ হারায় | ক্রমাঙ্কন কভারেজ, প্রিপ্রসেসিং সমতা এবং টাস্ক-লেভেল বৈধতা |
প্রোটোটাইপটিকে একটি পুনরাবৃত্তিযোগ্য পণ্যে পরিণত করুন
নিয়ন্ত্রিত রিলিজ হিসাবে মডেল, রানটাইম এবং অ্যাপ্লিকেশন কনফিগারেশন প্যাকেজ করুন। স্টার্টআপ চেক, ব্যর্থতার রিপোর্টিং, পুনরুদ্ধার এবং একটি রোলব্যাক পথ সংজ্ঞায়িত করুন। একটি ছোট রেফারেন্স-ইনপুট পরীক্ষা রাখুন যা একটি ক্যামেরা সংযুক্ত হওয়ার আগে একটি ভুল স্থাপনা সনাক্ত করতে পারে। শারীরিক সেন্সর পরীক্ষা থেকে সেই সফ্টওয়্যার চেকটি আলাদা করুন, যা ক্যাবলিং, ড্রাইভার এবং এক্সপোজার সেটিংসও অনুশীলন করে।
যখন বোর্ডের বিভিন্ন সংযোগকারী, পাওয়ার কন্ডিশনার বা সেন্সর ইন্টারফেসের প্রয়োজন হয়, তখন পর্যালোচনা করুন SoM বনাম SBC সিদ্ধান্ত এবং ক্যারিয়ার-বোর্ড নকশা প্রক্রিয়া. এই সিদ্ধান্তগুলি নির্ধারণ করে কিভাবে একটি সফল মডেল প্রদর্শন একটি রক্ষণাবেক্ষণযোগ্য সিস্টেম হয়ে ওঠে।
RK3588 NPU স্থাপনার প্রশ্ন
প্রতিটি ONNX মডেল কি RK3588 NPU এ চলতে পারে?
সামঞ্জস্য প্রকৃত গ্রাফ, আকার, অপারেশন এবং নির্বাচিত টুলচেইনের উপর নির্ভর করে। আপনি যে মডেলটি পাঠাতে চান তার রূপান্তর এবং অন-ডিভাইস যাচাইকরণের মাধ্যমে সমর্থন স্থাপন করুন।
একটি বিজ্ঞাপিত অ্যাক্সিলারেটর রেটিং কি অ্যাপ্লিকেশন FPS এর পূর্বাভাস দেয়?
না। নেটওয়ার্ক, নির্ভুলতা, মেমরি আচরণ, প্রিপ্রসেসিং এবং রানটাইম অ্যাপ্লিকেশনটির পরিমাপ করা থ্রুপুট নির্ধারণ করে। প্ল্যাটফর্মের তুলনা করার সময় টার্গেট ওয়ার্কলোড এবং এর সম্পূর্ণ ডাটা পাথ ব্যবহার করুন।
আমার কি প্রথমে নিউরাল নেটওয়ার্ক অপ্টিমাইজ করা উচিত?
প্রথমে প্রোফাইল। যদি অধিগ্রহণ, চিত্র রূপান্তর বা সারিবদ্ধভাবে প্রাধান্য পায়, মডেল কার্যকর করার সময় হ্রাস করা অ্যাপ্লিকেশন দ্বারা অভিজ্ঞ ফলাফলের বয়সের উপর সামান্য প্রভাব ফেলতে পারে।
সম্পূর্ণ কম্পিউটার দৃষ্টি টাস্ক বেঞ্চমার্ক
একটি অবজেক্ট-ডিটেকশন অ্যাপ্লিকেশনের জন্য, ক্যামেরা ক্যাপচার, আকার পরিবর্তন এবং স্বাভাবিককরণ, NPU অনুমান, আউটপুট ডিকোডিং এবং সিদ্ধান্তের বিতরণ পরিমাপ করুন। সময়ের ফলাফল সহ মডেল সংস্করণ, ইনপুট রেজোলিউশন, নির্ভুলতা, আত্মবিশ্বাসের থ্রেশহোল্ড এবং মূল্যায়ন ডেটাসেট রিপোর্ট করুন। অন্যথায়, দুটি দৃশ্যত একই রকম edge AI বেঞ্চমার্ক বিভিন্ন টাস্ক বর্ণনা করতে পারে।
একটি মডেল আর্কিটেকচারে প্রতিশ্রুতি দেওয়ার আগে নির্বাচিত RKNN টুলচেনের মাধ্যমে এক্সপোর্ট করা গ্রাফ এবং প্রয়োজনীয় অপারেটর পরীক্ষা করুন। টেকসই কার্যকর করার সময় পরিমাপ এবং আচরণের পরে সঠিকতা পরীক্ষা করুন, শুধুমাত্র রূপান্তর সফল হয় কিনা তা নয়। অবজেক্ট ডিটেকশন, সেগমেন্টেশন এবং ক্লাসিফিকেশন বিভিন্ন আউটপুট-প্রসেসিং খরচ আছে; প্রকল্পের জন্য নির্বাচিত প্রকৃত কাজের চাপ যাচাই করুন।
FPGA, NPU এবং MPU ডিজাইনের ভূমিকা তুলনা করুন
প্রযুক্তিগত রেফারেন্স
আপনার edge AI কাজের চাপের পরিধি।
মডেল, ইনপুট রেজোলিউশন, ক্যামেরা ইন্টারফেস, প্রয়োজনীয় ফলাফলের হার এবং পাওয়ার খাম শেয়ার করুন। আমরা একটি RK3588-ভিত্তিক প্রান্ত প্ল্যাটফর্মের চারপাশে ইন্টিগ্রেশন কাজ মূল্যায়ন করতে পারি।
