آیا یک درایو Edge 8 گیگابایتی با مدل 2 گیگابایتی کار می کند؟ حافظه بودجه در اوج همزمانی

هشت گیگابایت رم منهای 2 گیگابایت فایل مدل، 6 گیگابایت حافظه استنتاج قابل استفاده نیست. حافظه نهان KV را محاسبه کنید، سپس طولانی ترین پرس و جو و حداکثر همزمانی را آزمایش کنید.
این استخراج نمیتواند دستگاهی را تأیید کند. یک فایل یک مصنوع ذخیره سازی است. استنتاج همچنین از صفحات وزن ساکن پشتیبانی می کند، حافظه نهان KV و بافرهای محاسبه را تخصیص می دهد و با سیستم عامل و هر سرویس واکشی، صوتی یا نمایشی رقابت می کند. یک چت کوتاه موفق در مورد دو چت طولانی که با هم تداخل دارند اطلاعات کمی دارد.
قبل از لمس تخته می توانید دو عدد مفید بدست آورید: بایت های مصنوع دقیق یک مدل ثابت و یک محاسبه نظری KV معماری آن. فضای کاری زمان اجرا، استفاده از سیستم، خط مشی تخصیص و بازیابی پس از پیک، معیارهایی برای دستگاه مورد نظر باقی می مانند. فایل 2 گیگابایتی و درایو 8 گیگابایتی در اینجا یک خرید فرضی است، نه نتیجه یک برد آزمایش شده.
چرا “8 منهای 2” حساب های ناسازگار را با هم مخلوط می کند
«این مدل به 4 گیگابایت نیاز دارد» میتواند به فضای ذخیرهسازی، وزن ساکن، پیک پردازش، حافظه GPU یا کل دستگاه اشاره داشته باشد. بپرس کدوم سوال مفید این است که چه کسی حافظه فیزیکی یک مدل، پیکربندی و حجم کاری یکسان را اشغال می کند – نه اینکه آیا دو عدد در دیتاشیت های مختلف قابل استخراج هستند یا خیر.
لایه های زیر مفهومی هستند، نه متناسب با ظرفیت اندازه گیری شده. فضای تخصیص نیافته استفاده دیگری از رم نیست. اگر زمان اجرا KV را برای جلسه دوم اختصاص دهد، این جستجو مقداری از همان فضا را مصرف می کند. هیچ چیز در اینجا یک ضریب یا نتیجه دستگاه ثابت را ایجاد نمی کند.
| حساب کاربری | چه چیزی می تواند آن را ایجاد کند | چیزی که ایجاد نمی کند |
|---|---|---|
| وزن مدل و ابرداده | نسخه دقیق مصنوع، فرمت، بایت فایل، خروجی بوت لودر | اوج فرآیند یا دستگاه در حین خروجی |
| حافظه پنهان KV | تعداد لایه ها، هدهای KV، اندازه هد، توکن های اختصاص داده شده، انواع K/V | هزینه های تخصیص دهنده واقعی یا خط مشی رزرو زمان سرب |
| بافرهای محاسباتی و گرافیکی | خرابی حافظه در زمان اجرا یا اندازه گیری دستگاه مورد نظر | ضریب پارامتر مدل جهانی |
| سیستم عامل و وظایف همراه | پس از شروع تصویر واقعی و خدمات، حافظه در دسترس است | رم کامل تبلیغ شده به عنوان ظرفیت انحصاری مدل |
| درخواست های همزمان و آزادی | همپوشانی طول پرس و جو، سیاهههای مربوط به خطا، سنبله سیستم | تضمینی برای اشتراک گذاری هر کش – یا اینکه هر بایت تکراری است |
اینها صورتحساب های تشخیصی هستند، نه لزوما اندازه گیری های اضافی. رقم نهایی ظرفیت نیاز به یک پنجره نظارت و پیکربندی زمان اجرا ثابت دارد. اگر تنها مقدار شناخته شده GGUF یا اندازه فایل مدل دیگری است، فضای ذخیرهسازی را بررسی کردهاید، نه خارج از RAM.
محاسبه وزن چهار بیتی کمی کمتر است
فرض کنید یک مدل فرضی دارای سه میلیارد پارامتر است و هر پارامتر دقیقاً چهار بیت را اشغال می کند. کف وزن محاسباتی آن 3,000,000,000 × 4 ÷ 8 = 1,500,000,000 بایت، حدود 1.40 گیگابایت است. در هشت بیت، کف حدود 2.79 گیگابایت است. در شانزده بیت حدود 5.59 گیگابایت است. این محاسبه عمداً گیگابایت اعشاری را از GiB باینری متمایز می کند.
مصنوعات واقعی به طور مساوی در این طبقه نظری بسته بندی نمی شوند. بلوک های کوانتیزاسیون می توانند دارای مقیاس یا نقطه صفر باشند. برخی از تانسورها ممکن است در دقت بالاتری باقی بمانند. هدرها، ترازها، جاسازی ها و لایه های منبع نیز فضا را اشغال می کنند. از بایت های مصنوع با یک هش ثابت استفاده کنید، سپس بررسی کنید که زمان اجرا انتخاب شده در واقع چه چیزی بارگذاری می شود. “Q4” و “INT4” وعده های تعداد بایت های قابل تعویض در قالب ها و backend ها نیستند.
مهمتر از آن، کوانتیزاسیون وزن سیستم عامل، گرافیک محاسباتی، یا حافظه پنهان KV را با همان عامل کوچک نمی کند. مرجع سرور llama.cpp حالت بارگیری مدل، اندازه زمینه، بارگیری دستگاه و انواع حافظه پنهان K/V را به عنوان کنترل های جداگانه نشان می دهد. اگر دو اندازه گیری در چندین مورد از این تنظیمات متفاوت باشد، فرمت فایل به تنهایی نمی تواند تفاوت را توضیح دهد.
نقشه برداری حافظه RAM را آزاد نمی کند
زمان اجرا میتواند یک فایل مدل را به جای کپی کردن آن در یک تخصیص آشکار پشته ترسیم کند. صفحاتی که در حین خروجی به آنها دسترسی پیدا میکنند همچنان میتوانند ساکن شوند و میتوانند بین فرآیندها به اشتراک گذاشته شوند. RSS یک فرآیند ممکن است شامل صفحات مشترک باشد، بنابراین RSS به طور خودکار قیمت انحصاری مدل دستگاه نیست. اسناد لینوکس RSS و گزارش اندازه متناسب smaps_rollup. PSS به توصیف نگاشتهای مشترک کمک میکند، اما نه RSS و نه PSS به تنهایی پاسخ نمیدهند که یک GPU به اندازه کافی حافظه دارد یا اینکه تخصیصدهنده دستگاه میتواند یک درخواست بزرگ را برآورده کند.
برای آزمایش دستگاه هدف، مشاهدات فرآیند و سیستم را ضبط کنید: حافظه موجود، محدودیتهای کانتینر، رویدادهای تعویض یا OOM، و ارقام حافظه دستگاه در صورت لزوم. زمان گرفتن هر رقم را یادداشت کنید. خواندن خالی سالم و اوج استنتاج حقایق متفاوتی هستند.
برآورد 512 مگابایت KV از کجا می آید
در طول تولید اتورگرسیو، مدل از کلیدها و مقادیر از پیش محاسبه شده به جای بازسازی آنها برای هر توکن جدید، دوباره استفاده می کند. کش در لایه های توجه وجود دارد و رشد می کند یا بر اساس استراتژی کش زمان اجرا حفظ می شود.
KV bytes ≈ 2 × attention layers
× KV heads × dimensions per head
× allocated tokens per session
× bytes per K/V element
× simultaneous independent sessions
دو مورد اول نشان دهنده کلیدها و مقادیر هستند. از تعداد سرصفحه کلید-مقدار استفاده کنید، نه از تعداد سرصفحه پرس و جو چاپ شده در جای دیگری از پیکربندی. پرس و جو دسته ای و توجه به پرس و جوی چندگانه ممکن است از سرصفحه های KV کمتری نسبت به سرصفحه های پرس و جو استفاده کنند. اگر کلیدها و مقادیر از انواع داده های مختلف استفاده می کنند، شرایط آنها را جداگانه محاسبه کرده و اضافه کنید. یک لایه با یک پنجره کشویی، معماری ترکیبی، یا حالت مشترک بین لایه ها به جای این عبارت یکپارچه، به یک محاسبه خاص مدل نیاز دارد.
یک محاسبه، نه اندازه گیری تخته
32 لایه توجه استاندارد، هشت سر KV، 128 بعد در هر سر، و دو بایت در هر عنصر K یا V را فرض کنید. اگر یک زمان اجرا 4096 توکن را برای یک جلسه اختصاص دهد:
2 × 32 × 8 × 128 × 4,096 × 2 = 536,870,912 bytes ≈ 512 MiB
دو جلسه اختصاص داده شده به طور مستقل در یک حد یک خط پایه KV نظری 1024 مگابایت خواهد داشت. دوبرابر کردن تخصیص در هر جلسه به 8192 توکن، در صورت ثابت ماندن سایر مفروضات، این مدت را دو برابر می کند.
رقم 512 مگابایت اندازه گیری یک مدل یا برد تجاری نیست. “4096 نشانه” در اینجا یک توزیع فرضی است، نه تعدادی کاراکتر قابل مشاهده. دستورالعملهای سیستم، معابر واکشی شده، ورودی کاربر و خروجی ذخیرهشده در بودجه رمز درخواست حساب میشوند. برخی از پیاده سازی ها کل زمینه پیکربندی شده را حفظ می کنند. دیگران فضای کش را افزایش یا مجدداً استفاده می کنند، بلوک ها را تخصیص می دهند یا بسته های سربار را حمل می کنند. یک چت 100 توکنی نمیتواند پیکربندی 4096 توکن را به اوج برساند، چه رسد به اینکه دو چت طولانی روی هم تداخل داشته باشند.
دو جلسه همیشه به معنای “ضرب در دو” نیست. تحت همین معماری فرضی، یک جلسه اختصاص داده شده برای 4096 توکن و دیگری اختصاص داده شده برای 2048 توکن، 512 مگابایت به علاوه 256 مگابایت، یا 768 مگابایت، یک خط پایه KV نظری خواهد داشت اگر حافظه پنهان آنها به طور مستقل به این طول ها اختصاص داده شود. زمان اجرا با رزرو دو اسلات کامل 4096 توکن، از این رقم 768 مگابایت تبعیت نخواهد کرد. تخصیص موثر هر شکاف و تخصیص زمان اجرا گزارش شده را ثبت کنید. “دو کاربر آنلاین” یک اندازه گیری حافظه نیست. به اشتراک گذاری وزن مدل به این معنی نیست که دو تاریخچه مکالمه متفاوت KV خود را به اشتراک می گذارند.
کوانتیزاسیون و بارگذاری حافظه پنهان این مبادله را تغییر می دهد
یک K/V با دقت پایینتر میتواند طول عمر اسمی دادههای کش را کاهش دهد، اما مقیاسها، ذخیرهسازی باقیمانده، بافرهای تبدیل و تأخیر میتوانند صرفهجویی واقعی را تغییر دهند. بارگذاری حافظه نهان از GPU به CPU محل مصرف حافظه را تغییر می دهد و کار انتقال را اضافه می کند. ظرفیت آزاد روی دستگاه ایجاد نمی کند. گزینه های سرور llama.cpp به اپراتور اجازه می دهد تا انواع کش K و V را جداگانه انتخاب کند.
هنگام مقایسه دو اجرا، مصنوع وزن، انواع K و V، تخصیص زمینه، تعداد جلسات، تنظیمات تخلیه و نسخه زمان اجرا را با هم ثبت کنید. نتیجه ای که فقط به عنوان “4 بیت” برچسب گذاری شده است مبهم است: می تواند وزن ها را توصیف کند در حالی که حافظه پنهان در شانزده بیت باقی می ماند.
4096 توکن را به یک درخواست واقعی تبدیل کنید
نشانه های اختصاص داده شده، نشانه های قابل مشاهده نیستند. فرض کنید طولانیترین ورودی کسبوکار 3000 توکن میگیرد، سهمیه پاسخ 800 است و دستورالعملها و الگوها 200 توکن دیگر مصرف میکنند. این در حال حاضر 4000 است. زمینه توکن 4096 فضای کمی برای یک پاساژ مشتق شده طولانیتر یا نوع نشانهساز باقی میگذارد. 150 توکن اضافی ممکن است قبل از خرابی خارج از حافظه باعث بریدن شود. افزایش متن به 8192 می تواند از کوتاه شدن جلوگیری کند، اما ممکن است باعث شود که در برخی زمان ها حافظه KV بیشتری ذخیره شود.
به همین دلیل است که یک نسخه آزمایشی با 100 توکن نمی تواند یک محصول 8 گیگابایتی را تأیید کند. یک جستار کوتاه، طولانی ترین پرس و جوی مجاز، و جستارهایی که همپوشانی دارند را تقسیم کنید. اگر محصول به دنبال کتابچه راهنمای محلی میگردد یا نمایشگری را کنترل میکند، این سرویسها را در حین اجرای همزمان فعال کنید. ضرب یک پیک درخواست منفرد در تعداد رشتهها، آزمون همزمانی نیست: وزنها را میتوان به اشتراک گذاشت، تخصیصهای KV را میتوان رزرو یا استفاده مجدد کرد، و زمانهای اجرا میتوانند بهصورت بیصدا در صف کار قرار گیرند.
به طور مشابه، “دو کاربر آنلاین” به این معنی نیست که دو زمینه کامل فعال هستند. یک بار کاری همزمان را تعریف کنید که مهندس دیگری می تواند آن را بازتولید کند – برای مثال، دو ورودی طولانی که در طول پردازش سریع با هم همپوشانی دارند. اگر محصولی عمداً درخواست های طولانی را برای ذخیره حافظه سریالی می کند، زمان انتظار و زمان انتظار را به عنوان بخشی از پذیرش مستند کنید. کاهش حافظه که الزامات زمان پاسخگویی را میشکند، یک برد رایگان نیست.
سلول های اندازه گیری نشده را خالی بگذارید
قبل از اینکه هر ارزیابی را به عنوان یک الزام در نظر بگیرید، حجم کاری محصول را اصلاح کنید: طولانی ترین ورودی واقعی، مجاز توکن خروجی، کاربران همزمان، استخراج یا خدمات صوتی همراه، و خطاها و تأخیرهای قابل قبول. سپس هش مصنوع مدل، توکنایزر، پیکربندی معماری، زمان اجرا و نسخههای باطن، محدودیت زمینه و نوع K/V را تنظیم کنید. بدون این ورودی ها، مجموعه نامزدها معقول است. “8 گیگابایت کافی است” نیست.
بودجه کار باید چهار مرحله را در کنار هم نشان دهد: تخمین استاتیک، بارگیری دستگاه بیحرکت، طولانیترین درخواست واحد، و حداکثر زمانبندی زمانبندی شده. مرحله استاتیک ممکن است حاوی بایت های مصنوع اندازه گیری شده و یک خط پایه محاسبه شده KV باشد. فضای کاری کامپیوتر را علامت گذاری کنید و به جای ایجاد درصد ایمنی از سیستم “برای اندازه گیری” استفاده کنید. مرحله بارگذاری شده را با اجرای تمام سرویس های عادی مشاهده کنید.
این کاربرگ خالی را برای هر پیکربندی کاندید کپی کنید. مقادیر، واحدها و زمانهای ضبط را وارد کنید و هش فایل مدل، نسخه اجرا شده و گزارشهای خام را پیوست کنید. سلول ها را تا اندازه گیری خالی بگذارید. محاسبات استاتیک نباید به عنوان نظارت بر دستگاه ظاهر شود. هم پیک دستگاه و هم MemAvailable را در آخرین خط ضبط کنید تا فرآیند RSS با پاسخ سراسری سیستم اشتباه گرفته نشود.
| مشاهده (MiB؛ خطوط اضافه نشده است) | ارزیابی ایستا | بیکار بارگیری شد | طولانی ترین درخواست | موازی پیش بینی شده |
|---|---|---|---|---|
| مدل مصنوع | بایت فایل تبدیل شده به MiB: ____ | همان آرتیفکت هش: ____ | همان | همان |
| نگاشت فایل مدل، اگر به طور جداگانه قابل شناسایی باشد | از اندازه فایل استنباط نمی شود | نقشه برداری RSS/PSS: ____ | نقشه برداری RSS/PSS: ____ | نقشه برداری RSS/PSS: ____ |
| حافظه پنهان KV | فرمول معماری: ____ | توزیع شده: ____ | توزیع شده: ____ | توزیع شده: ____ |
| محاسبات، گرافیک، بافرهای بسته در صورت گزارش | برای اندازه گیری | ____ | ____ | ____ |
| کل RSS/PSS فرآیند استنتاج | نه مجموع ردیف های بالا | ____ / ____ | ____ / ____ | ____ / ____ |
| سیستم و خدمات همراه؛ محدودیت های کانتینر/دستگاه | برای اندازه گیری | ایالت و مرز: ____ | ____ | ____ |
| Device Peak / Concurrent MemAvailable | از اندازه فایل استنباط نمی شود | ____ / ____ | ____ / ____ | ____ / ____ |
RSS/PSS مشترک برای این فرآیند اکنون میتواند حاوی نگاشتها، KV و بافرهای اختصاص داده شده به آن فرآیند باشد. خطوط تفصیلی پیک را توضیح می دهد. آنها هزینه های جمع جداگانه نیستند. بایت های فایل و RSS/PSS نیز از مرزهای حسابداری متفاوتی استفاده می کنند. توکن های ورودی/خروجی کارآمد، زمینه توزیع شده، جلسات واقعاً همپوشانی، محدودیت های کانتینر، swap/OOM و درخواست های ناموفق را در یک رکورد ذخیره کنید. برای هر عدد یک مهر زمانی بگیرید تا MemAvailable و پیک گزارش شده به یک زمان اشاره کنند.
دنباله اندازه گیری به اندازه کافی کوتاه است که تکرار شود. تصویر مورد نظر را با خدمات معمولی آن شروع کنید و یک MemAvailable غیرفعال را ذخیره کنید. مصنوع شناسایی شده توسط هش را بارگیری کنید و وزن موثر، زمینه، KV و تنظیمات فضای کاری زمان اجرا را ذخیره کنید. طولانی ترین پرس و جو را اجرا کنید، سپس پرس و جوهای واقعاً همپوشانی دارند، سپس بازیابی را در چندین دور تماشا کنید.
فیلدهای مفید برای لینوکس شامل /proc/meminfo MemAvailable و فرآیند استنتاج smaps_rollup RSS/PSS; سابقه استفاده از کانتینر و محدودیتهای موجود در صورت کانتینر شدن، و شمارشگر حافظه دستگاه زمانی که زمان اجرا آنها را فراهم میکند. اگر زمان اجرا یک فیلد را حذف کرد، به جای عددی که از فایل مدل قرض گرفته شده است، بنویسید “not report”.
فرض کنید تمام چیزی که امروز دارید، مشخصات دستگاه 8 گیگابایتی، مصنوع مدل 2 گیگابایتی و محاسبه فرضی 512 مگابایت KV در بالا است. یک ستون ثابت می تواند حاوی بایت های مصنوع و یک فرمول باشد. سه ستون بعدی باید خالی بماند. این ورودی می گوید که ذخیره سازی یک نامزد دارد و حافظه پنهان یک نقطه شروع نظری دارد. نمی گوید که تقریباً 5.5 گیگابایت باقی مانده است: صفحات ساکن، بافرها، خدمات، محدودیت های کانتینر و خط مشی تخصیص واقعی بر اساس حسابداری واحد اندازه گیری نمی شوند.
پس از رسیدن اولین فایل لاگ دستگاه هدف، ارزش بررسی تفاوت غیرقابل توضیح بین KV نظری، توزیع گزارش شده در زمان اجرا و پیک سیستم را دارد. ممکن است زمینه ذخیرهشده طولانیتر، بافرهای دستهای، فرآیند دیگری یا یک دستگاه حافظه متفاوت را منعکس کند. تا زمانی که اعداد با هم مطابقت داشته باشند، کاربرگ را با تنظیم ضریب “تثبیت” نکنید. یک فیلد گم شده یا شگفتانگیز به شما میگوید کدام گزارش را باید جمعآوری کنید.
دو خط قابل مقایسه یک دستگاه، تصویر سیستم عامل، نسخه زمان اجرا و مجموعه پرس و جو را در حالی که یک پیکربندی نامزد را تغییر میدهند، اصلاح میکنند. مقایسه یک مدل 3B و یک مدل 7B مستلزم خواندن لایه خود هر مدل و تعداد هدهای KV است. ثابت کش به توکن مدل اول منتقل نمی شود. مقایسه دو فرمت وزنی مستلزم بررسی عدم تغییر دقت توکنایزر، زمینه و K/V در پسزمینه است. هیچ دستگاه جفتی پشت این مقاله وجود ندارد، بنابراین یک طراحی آزمایشی به جای رتبه بندی مدل برای سخت افزار 8 گیگابایتی ارائه می دهد.
قبل از خرید حافظه اضافی، عیب را پیدا کنید
«مدل اجرا نمیشود» میتواند به این معنی باشد که ورودی قبل از خروجی رد شده است، حافظه بار یا تولید تمام شده است، یا تنها دو درخواست همپوشانی ناموفق هستند. به جای اینکه فرض کنید هر خرابی به رم بیشتری نیاز دارد، از یک مرحله قابل مشاهده از خرابی شروع کنید.
آخرین اقدام موفق قبل از شکست را ذخیره کنید. اگر بار کامل شد اما اولین درخواست ناموفق بود، پردازش ورودی و تخصیص آن را بررسی کنید. اگر پرس و جوهای کوتاه کار می کنند، اما یک جستار طولانی کوتاه شده است، مجوز توکن ساز و خروجی را بررسی کنید. RAM بیشتر ممکن است یک باگ سیاست زمینه را برطرف نکند. اگر فقط همزمانی باعث OOM می شود، بازه های زمانی همپوشانی، KV در هر جلسه و محدودیت های ظرف یا دستگاه را بررسی کنید. اگر دور اول موفقیت آمیز بود و راندهای بعدی بدتر شدند، عملیات تراکم کش و صف را بررسی کنید. یک متغیر را تغییر دهید و دوباره بوت استرپ را اجرا کنید. در غیر این صورت، موفقیت جدید نشان نمی دهد که چه چیزی مشکل اصلی را برطرف کرده است.
شمارنده ها را در برابر توپولوژی حافظه تفسیر کنید. در سخت افزار حافظه یکپارچه، فرآیند RSS، شمارنده API GPU و در دسترس بودن سیستم ممکن است برخی از صفحات فیزیکی یکسان را توصیف کنند، بنابراین افزودن آنها ممکن است منجر به شمارش مضاعف شود. با VRAM گسسته، RAM سیستم می تواند پس از اتمام حافظه دستگاه در دسترس باقی بماند. زمانی که میزبان هنوز آزادی را گزارش میکند، یک کانتینر میتواند به حد خود برسد. یک خط OOM بدون فرم درخواست و تنظیمات زمان اجرا موثر ثابت نمی کند که محصول به “حداقل 16 گیگابایت” نیاز دارد.
حتی اگر کوانتیشن وزن یا برش زمینه پیکربندی را مناسب کند، این تغییر ممکن است پاسخها، نشانههای زمان تا اول یا پیمایش دستی را که محصول باید حفظ کند، از بین ببرد. پس از غربالگری ظرفیت، امتیاز را با یک مجموعه پاسخ مناسب و یک پاس اعتبار سنجی جداگانه برای TTFT، TPOT، حافظه و پاور ارزیابی کنید.
چه زمانی می توانید با 8 گیگابایت به اندازه کافی تماس بگیرید؟
فقط برای مصنوع ثابت، پیکربندی زمان اجرا کارآمد و حجم کار هدف: طولانیترین پرس و جو و همزمانی پیشبینیشده باید تکمیل شود و پیک دستگاه، خطاها، نوشتن swap/OOM و بازیابی باید الزامات محصول را برآورده کنند. بایت های فایل و KV نظری می توانند نامزدها را بررسی کنند. نمی تواند ظرفیت را تایید کند.
اگر محصول باید هنگام ارائه یک نمایشگر و چندین کاربر به دنبال کتابچه های راهنمای طولانی باشد و کاهش زمینه یا همزمانی این الزام را نقض می کند، به جای افزودن یک ضریب ایمنی، دستگاهی با حافظه بزرگتر یا رویکرد پیاده سازی دیگری را مقایسه کنید.
هیچ اجرای برد هدف، مقیاسهای مدل جفتی، یا قالبهای کوانتیزاسیون جفتی در پشت این مقاله وجود ندارد. ارقام سه میلیارد پارامتر، 512 مگابایت KV و 2 گیگابایت/8 گیگابایت نمونه های پردازش شده هستند و نتایج عملکردی برای یک دستگاه خاص نیستند. یک نتیجه گیری مفید هنگام خرید امروز ممکن است این باشد: “حساب نظری کامل است؛ اوج همزمانی کل دستگاه هنوز باید اندازه گیری شود.” این آموزنده تر از “آثار” فاقد صلاحیت است.
منابع
- ترانسفورماتورهای صورت در آغوش گرفته: نحوه ذخیره سازی در حافظه پنهان چگونه کار می کند
- ترانسفورماتورهای صورت در آغوش کشیدن: استراتژی های نقدی
- گزینه های سرور llama.cpp
- اسناد هسته لینوکس: /proc و smaps_rollup




