HeadlinesBriefing favicon HeadlinesBriefing.com

Go 1.26/1.27 SIMD API প্ল্যাটফর্ম-অনুসারী

Hacker News •
×

Go 1.26 এবং 1.27-তে সিইমিড (একটি নির্দেশ বহু ডেটা) জন্য التجামেন্ট API রয়েছে। SIMD অনেকের আধুনিক প্রসেসরের একটি ন্যাটিভ ফিচার যা সফটওয়্যারকে ডেটা веক্টরে একই নির্দেশ দিয়ে একসাথে অপারেশন করতে দেয়, যেমন একই নির্দেশে 8 জোড়া float64 মান যোগ করা। অনেক গাণ্য-intensive কাজের গতি অনেক বাড়াতে পারে, যাতে কিপ্টোগ্রাফি থেকে ডেটা প্রসেসিং এবং AI।実際、GoのGreen Tea 가비지 কোলেক্টর এসিমিড ব্যবহার করে মেমরিে জীবন্ত অবস্তুদের স্ক্যানিং ত্বরিত করে। এই নতুন التجামেন্ট API-র আগে, Go থেকে এই ফাংশনালিটি অ্যাক্সেস করার একমাত্র উপায় ছিল Go অssenior লিখা।

Go 1.26-তে amd64-র জন্য SIMD API পেশ করা গেলে, Go 1.27-তে arm64 (বিশেষে NEON) এবং wasm-র জন্য API যোগ করা গেলে। তবে, SIMD API-র জন্য একটি বুনিয়াদি চ্যালেঞ্জ প্ল্যাটফর্মের মধ্যে বিশাল বৈচিত্র্য, ন 단순히Supported operations-তে, বরং vectors কীভাবে প্রদর্শিত হয়। এই প্ল্যাটফর্মের বিস্তারিত পৌঁছানোর জন্য, এই APIs archsimd প্যাকেজে রয়েছে, যা আর্কিটেকচার-ডিপেন্ডেন্ট।

কিন্তু Go 1.27, এই架構-ডিপেন্ডেন্ট APIs-র বাইরে গেলে এবং একটি التجামেন্ট, পূর্ণরূপে পোর্টেবল, প্ল্যাটফর্ম-এবং সাইজ-অনুসারী SIMD ইন্টারফেস পেশ করেছে, যা C++-এর Highway-তে ভিত্তি করে। লক্ষ্য হলো write-once near-asm-performance "simd" code প্ল্যাটফর্মস-কে সমports করা যারা SIMD সমports করে, এবং যারা এখন পর্যন্ত (নहीं) পাস SIMD সমports করে, একটি প্রতিযোগী এমুলেশন প্রদান করা। বর্তমানে simd প্যাকেজ amd64-র AVX, AVX2, এবং AVX512, arm64-র NEON, এবং wasm-র SIMD নির্দেশ সমports করে।

SIMD আর্কিটেকচার একাধিক आयামে ভিন্ন, যার মধ্যে vector sizes, masking approaches, এবং operation primitives অন্তর্ভুক্ত। প্রতিটি架構 তার নিজস্ব vector元素 পুনর্বিন্যাস প্রাইমিটিভ्स প্রদান করে, এবং বিভিন্ন crypto-sंबंधিত অপারেশন সমports করে। এখানেও বেসিক অঙ্কগণিতেরও বিভিন্ন সমports হতে পারে; উদাহরণস্বরূপ, wasm 64-বিট ইন্টিজার वेক্টরের জন্য তুলনা deficiency।