এটি হয়তো AMD-এর জন্য অপেক্ষা করা হয়েছিল এমন মুহূর্ত।
সাম্প্রতিক সময়ে, Wafer AI এর ডিপ্লয়মেন্ট হয়েছে AMD MI355X-এ কিমি K3। ফলাফল হলো, যে মডেলটি আগে 16টি NVIDIA B200 গ্রাফিক্স কার্ড এবং দুটি সার্ভারে চালানো প্রয়োজন হতো, এখন একটি AMD সার্ভারে 8টি MI355X গ্রাফিক্স কার্ড দিয়েই ডিপ্লয় করা যাচ্ছে।

এর চেয়ে বেশি গুরুত্বপূর্ণ হলো, এটি শুধু মডেলটিকে ঢুকিয়েছে না।
1024 টোকেন ইনপুট এবং 400 টোকেন আউটপুট পরীক্ষায়, MI355X এর মোট থ্রুপুট 952 টোকেন/সেকেন্ড এবং একক ব্যবহারকারীর জেনারেশন স্পিড 118 টোকেন/সেকেন্ড।
একক নোড ভিত্তিক গণনা অনুযায়ী, এর থ্রুপুট প্রায় 16টি B200 সলিউশনের 3.8 গুণ, এবং এর মূল্য-পারফরম্যান্স অনুপাতও B200 এবং B300 এর চেয়ে বেশি।
এবং সবচেয়ে আশ্চর্যজনক বিষয় হলো, এবার ROCm কোনো বিশেষ ব্যাপার করেনি।
মডেলটি খুব বড়, ভিজিএ মেমোরি এখন ক্যালকুলেশন ক্ষমতার চেয়ে বেশি গুরুত্বপূর্ণ
কিমি K3-এ 2.8 ট্রিলিয়ন প্যারামিটার রয়েছে, শুধু মডেল ওয়েট এর জন্যই 1.5 TB-এর বেশি GPU মেমোরি প্রয়োজন, যা মিলিয়ন টোকেনের জন্য KV Cache-এর প্রয়োজনীয়তা বাদ দিয়ে।
একটি 8-কার্ড B200 সার্ভার, যেখানে প্রতিটি কার্ডে 192 GB গ্রাফিক্স মেমোরি রয়েছে, মোট ক্ষমতা প্রায় 1.5 TB। অর্থাৎ, মডেল ওয়েটসগুলি পুরোপুরি রাখাও কঠিন, তবে KV Cache-এর জন্য জায়গা রাখা আরও কঠিন। তাই, B200-এর জন্য দুটি সার্ভার এবং 16টি GPU প্রয়োজন।
প্রতিটি B300 কার্ডে 288 GB গ্রাফিক্স মেমোরি রয়েছে, যা একটি একক নোডে মডেলটি রাখার অনুমতি দেয়। আকস্মিকভাবে, AMD MI355X-এও 288 GB গ্রাফিক্স মেমোরি রয়েছে, যা 8টি MI355X কার্ডের মোট প্রায় 2.3 TB দেয়, যা শুধুমাত্র একটি সার্ভারেই ফিট হয়।
এটি শুধু একটি মেশিন কম ব্যবহার করার বিষয় নয়। মডেল নোডের মধ্যে চলাচল করার পর, প্রতিটি টোকেন জেনারেট করার জন্য নেটওয়ার্কের মাধ্যমে ডেটা সিঙ্ক্রোনাইজ করতে হতে পারে। যদিও RoCE v2 নেটওয়ার্কের গতি প্রায় 195 Gb/s, তবুও নোডের মধ্যে যোগাযোগ ডিকোডিংকে ধীর করে দেয়।
MI355X বড় গ্রাফিক্স মেমোরির কারণে সম্পূর্ণ মডেলটিকে একটি নোডে রেখেছে।

চূড়ান্ট ফলাফল অনুযায়ী, 8টি MI355X-এর পিক মোট থ্রুপুট 952 টোকেন/সেকেন্ড এবং একক পথ জেনারেশন গতি 118 টোকেন/সেকেন্ড।
তুলনায়, 16টি B200-এর ডুয়াল-নোড ডিপ্লয়মেন্টের মোট থ্রুপুট 498 টোকেন/সেকেন্ড, যা একক নোডে প্রায় 249 টোকেন/সেকেন্ডের সমান।
অর্থাৎ, MI355X-এর একক নোড থ্রুপুট প্রায় B200-এর ডুয়েল নোড ডিপ্লয়মেন্টের গড় একক নোড থ্রুপুটের 3.8 গুণ। একক ব্যবহারকারীর জন্য জেনারেশন স্পিডের ক্ষেত্রে, MI355X-এর 118 Token/s, B200-এর 90 Token/s-এর চেয়ে বেশি।
B300 এখনও সর্বাধিক পারফরম্যান্স সম্পন্ন সমাধান। 8টি B300 নোডের মোট থ্রুপুট 1568 টোকেন/সেকেন্ড পৌঁছেছে, একক পথের জেনারেশন স্পিড 172 টোকেন/সেকেন্ড, যা MI355X-এর মোট থ্রুপুটের প্রায় 1.65 গুণ।

কিন্তু মূল্য পরিবর্তন করে সিদ্ধান্তটি। ওয়েফার MI355X-এর জন্য প্রতি কার্ড প্রতি ঘন্টায় 2.5 ডলার, B200-এর জন্য 4.25 ডলার এবং B300-এর জন্য 6 ডলার হিসাবে গণনা করা হয়।
এই মূল্য ধারণার অধীনে, MI355X প্রতি ডলারে প্রায় 48 টোকেন/সেকেন্ড শীর্ষ থ্রুপুট প্রদান করে; B200 প্রায় 7 টোকেন/সেকেন্ড; B300 প্রায় 33 টোকেন/সেকেন্ড।
B300 দ্রুততর, কিন্তু MI355X-এর ইউনিট খরচ দক্ষতা বেশি। বড় পরিসরে ওপেন মডেল চালানোর প্রয়োজন থাকা ডেটা সেন্টারগুলির জন্য, শুধুমাত্র পারফরম্যান্সের চ্যাম্পিয়ন হওয়ার চেয়ে এটি আরও গুরুত্বপূর্ণ হতে পারে।
আরও অপ্রত্যাশিতভাবে, ROCm প্রায় সরাসরি ব্যবহার করা যায়
দীর্ঘ সময় ধরে, AMD ডেটা সেন্টার GPU-এর সবচেয়ে বড় সমস্যা ছিল হার্ডওয়্যার নয়, বরং সফটওয়্যার।
একই মডেল CUDA-এ সরাসরি চালানো যায়, কিন্তু ROCm-এ, ফ্রেমওয়ার্ক পরিবর্তন করতে হতে পারে, অপারেটর যোগ করতে হতে পারে, এমনকি নিচের লেয়ার কার্নেল পুনর্লিখন করতে হতে পারে।
কিন্তু কিমি K3-এর পরিস্থিতি ভিন্ন।
AMD এটির জন্য প্রায় লঞ্চ সিঙ্ক্রোনাইজেশন সমর্থন প্রদান করেছে। ওয়েফার বলেছেন, মডেলগুলি প্রায় সরাসরি MI355X-এ চলবে, এবং পরবর্তী কাজগুলি কিছু সামঞ্জস্যতা সমস্যা এবং পারফরম্যান্স অপ্টিমাইজেশনের উপর কেন্দ্রীভূত হবে।
অনুমান ডিকোডিং পর্যায়ে একটি সমস্যা দেখা দিয়েছে। কিমি K3 নিজেই MTP বা EAGLE-এর জন্য প্রয়োজনীয় ড্রাফ্ট মডেল প্যারামিটার প্রদান করে না, তাই Wafer একটি বাহ্যিক ব্লক ডিফিউশন ড্রাফ্ট মডেল ব্যবহার করে।
এই সমাধানটি CUDA-এ সরাসরি চলে, কিন্তু ROCm পরিবেশে, প্রথম বাস্তব অনুরোধটি স্কিডিউলারকে ত্রুটি দেয়। কারণ ROCm ব্রাঞ্চে top_k_renorm_prob নামে একটি ফাংশন সংজ্ঞায়িত করা হয়নি।
এই ফাংশনটি যা করে: সম্ভাব্যতা বণ্টন থেকে সর্বোচ্চ k টি মান বাছাই করুন, অন্যান্য সম্ভাব্যতাগুলিকে শূন্য করুন, এবং সংরক্ষিত সম্ভাব্যতাগুলিকে পুনরায় নরমালাইজ করুন।
ওয়েফার এই লজিকটি পূরণ করতে একটি সাধারণ PyTorch ফাংশন ব্যবহার করেছে, যার জন্য GPU কার্নেল হাতে লেখার প্রয়োজন হয়নি এবং অনুমানমূলক ডিকোডিং সিস্টেমকে পুনর্ডিজাইন করারও প্রয়োজন হয়নি।
সংশোধনের পর, একক পথের কার্যক্ষমতা প্রায় 2.2 গুণ বৃদ্ধি পায়, মধ্যম সমান্তরালতার ক্ষেত্রে একক স্ট্রিমের কার্যক্ষমতা প্রায় 1.7 গুণ বৃদ্ধি পায়, এবং শীর্ষ মোট থ্রুপুট প্রায় 18% বৃদ্ধি পায়।

বেশি গুরুত্বপূর্ণ বিষয় হলো, সিস্টেমটি উচ্চতর সমান্তরালতার সাথে শীর্ষ থ্রুপুট অর্জন করতে পারে।
প্রথম অক্ষরটি খুব ধীরে ছিল, শেষে মাত্র চারটি শূন্য যোগ করা হয়েছিল
অবশ্যই, থ্রুপুট শুধুমাত্র ইনফারেন্স সার্ভিসের সমস্ত কিছু নয়। বাস্তব ব্যবহারকারীদের জন্য, অন্য একটি প্রত্যক্ষভাবে অভিজ্ঞতাকে প্রভাবিত করে এমন মাপকাঠি হল TTFT, যা অনুরোধ পাঠানোর থেকে প্রথম টোকেন দেখা পর্যন্ত অপেক্ষার সময়।
এই কাজে, MI355X এর প্রাথমিক পারফরম্যান্স ভালো ছিল না। প্রায় 172,000 টোকেনের শুরুর জন্য প্রিফিল করার কাজের সম্মুখীন হয়ে, MI355X এর প্রায় 51 সেকেন্ড সময় লাগে, যেখানে B300 এর মাত্র 23 সেকেন্ড লাগে।
মিলিয়ন টোকেনের কনটেক্সট সমর্থনকারী মডেলে, প্রিফিল টাস্ক খুব বড় হতে পারে। যদি দীর্ঘ কনটেক্সট প্রসেস করার সময় ব্যবহারকারীকে প্রতিবার কয়েক দশক বা তারও বেশি অপেক্ষা করতে হয়, তবে ডিকোডিং স্পিড যতই বেশি না কেন, অভিজ্ঞতার সমস্যা পূরণ করা কঠিন।
ওয়েফার শেষ পর্যন্ত দেখেছে যে পারফরম্যান্সের পার্থক্যটি প্রায় সম্পূর্ণরূপে একটি অ্যাটেনশন কোর থেকে আসছে। কিমি K3 এর 8-পথ টেনসর প্যারালাল কনফিগারেশনে, প্রতিটি GPU-এ 12টি অনুলক্ষণ হেড বণ্টন করা হয়। অন্যদিকে, AMD AITER-এর দ্রুততম MLA প্রিফিল কার্নেলগুলি শুধুমাত্র 4, 8 বা 16-এর গুণিতক আকারগুলিকেই সমর্থন করে।
12টি হেড মেলেনি, তাই সিস্টেম ধীরগতির সাধারণ Triton বাস্তবায়নে ফিরে গেল।
সমাধানটি খুব সাদাসিধে: 12টি অনুধাবন মাথাকে শূন্য দিয়ে 16টিতে পূরণ করুন, বিদ্যমান হাই-স্পিড কার্নেল ব্যবহার করুন, গণনা শেষ হলে প্রকৃতপক্ষে প্রয়োজনীয় 12টি মাথা ফিরিয়ে আনুন। মডেলের কাঠামোতে কোনো পরিবর্তন করা হয়নি, কোনো নতুন অ্যাসেম্বলি কার্নেলও লেখা হয়নি, শুধু চারটি শূন্য যোগ করা হয়েছে।
অপ্টিমাইজেশনের পর, AITER MLA কোরের স্থিতিশীল প্রিফিল স্পিড প্রায় 13,000 টোকেন/সেকেন্ডে পৌঁছেছে, যেখানে মূল Triton ফলোব্যাক পাথটি মাত্র 4,000–7,000 টোকেন/সেকেন্ড ছিল, যার ফলে কুল প্রিফিল টাইম প্রায় দুই থেকে তিন গুণ কমেছে।
এই অপ্টিমাইজেশনটি চূড়ান্ত ডিকোডিং থ্রুপুট পরিবর্তন করবে না, তবে প্রথম অক্ষরটি দেখতে ব্যবহারকারীদের অপেক্ষা করার সময় উল্লেখযোগ্যভাবে কমিয়ে দেবে।
এটি এটিও নির্দেশ করে যে, AMD এবং NVIDIA-এর মধ্যে যে প্রতীয়মান বড় সফটওয়্যার ব্যবধান রয়েছে, তা কখনও কখনও মূল ক্ষমতার অভাব নয়, বরং বর্তমান হাই-স্পিড কোরগুলি কোনও নতুন মডেল ফর্মের সাথে মানানসই নয়।
CUDA-এর প্রতিরক্ষামূলক প্রাচীর এখনও বিদ্যমান, কিন্তু ফাঁক দেখা দিয়েছে
একটি পরীক্ষা অবশ্যই প্রমাণ করে না যে AMD এখন NVIDIA-এর সাথে সম্পূর্ণরূপে সমান হয়ে গেছে।
B200 এর জন্য ভিডিও মেমোরির অভাবে নোডের বাইরে চালানো প্রয়োজন হয়েছে; B300 এর পরম পারফরম্যান্স এখনও এগিয়ে; ROCm এর টুলচেইন, ফ্রেমওয়ার্ক সমর্থন এবং ডেভেলপার ইকোসিস্টেমও এখনও CUDA-এর চেয়ে কম।
কিন্তু ওপেন মডেলগুলি দ্রুত ট্রিলিয়ন প্যারামিটার যুগে প্রবেশ করছে। যখন মডেলটি এতটাই বড় হয়ে যায় যে একটি সার্ভারে তা ধরে রাখা সম্ভব নয়, তখন VRAM ক্ষমতা শুধুমাত্র প্যারামিটার টেবিলের একটি সংখ্যা হয়ে থাকে না, বরং এটি সরাসরি যোগাযোগ খরচ, ডিপ্লয়মেন্টের জটিলতা এবং চূড়ান্ত থ্রুপুটকে প্রভাবিত করে।
AMD-এর একক কার্ডে বেশি HBM প্রদানের কৌশল এখন একটি বাস্তব সিস্টেম সুবিধা হয়ে উঠছে।
যদি AMD রোকমের স্থিতিশীলতা বাড়াতে পারে, হাই-স্পিড কোরের জন্য আকৃতির সমর্থন বাড়াতে পারে এবং নতুন মডেলগুলির জন্য দ্রুত দিন-প্রথম সামঞ্জস্যতা প্রদান করতে পারে, তবে ডেটা সেন্টারগুলিকে এই GPU গুলি গুরুত্বপূর্ণভাবে বিবেচনা করতে হবে। দাম কম, VRAM বেশি, পারফরম্যান্স যথেষ্ট, এবং সফটওয়্যারের জন্য আর মাসগুলি অপেক্ষা করার দরকার নেই।
আপনি এটি সম্পর্কে কী মনে করেন?
রেফারেন্স লিঙ্ক:
https://x.com/wafer_ai/status/2083628389903315406
https://x.com/ChiragAsarpota/status/2083864019870634151
এই পোস্টটি ওয়েইচ্যাট গ্রুপ "মেশিন সিন্টিস" (ID: almosthuman2014) থেকে, লেখক: LLM-এর দিকে মনোযোগ দেওয়া
