AhoosAI گزارش آزمایش · Test report · 2026-10-16
PML-sRUN 0.3.1 · made by AhoosAI

PML-sRUN مدلی بزرگ‌تر از کارت گرافیک را تکه‌تکه اجرا می‌کند؛ هر تکه همان‌جا که سریع‌تر استPML-sRUN runs a model bigger than the graphics card in pieces, each where it runs fastest

روی یک لپ‌تاپ با کارت گرافیک ۴ گیگابایتی، همان فایل مدل را 2.0 برابر سریع‌تر از llama.cpp به‌تنهایی اجرا کرد، و در ویرایش کد — که جواب تکرار متنی است که مدل دیده — 3.7 برابر. بدون مدل دوم و بدون کوانت دیگر؛ فقط با جای درست هر تکه.On a laptop with a 4 GB graphics card it ran the same model file 2.0× as fast as llama.cpp on its own, and 3.7× on code edits, where the answer repeats what the model was shown. No second model, no other quantisation: each piece in the right place.

PML-sRUN 0.3
7.42
توکن در ثانیهtokens a second
llama.cpp به‌تنهاییllama.cpp alone
3.63
توکن در ثانیهtokens a second
Ollama
4.95
توکن در ثانیهtokens a second

در برابر موتورهای دیگرAgainst other engines

یک فایل مدل، یک کامپیوتر. ارتفاع ستون‌ها در هر سه نمودار با یک مقیاس است: ۱۲ توکن در ثانیه یعنی تمام ستون.One model file, one computer. The columns share one scale on all three charts: 12 tokens a second is a full column.

جواب کوتاهShort answersمیانه‌ی سه سؤال تازه، ۱۲۸ توکن جوابthe median of three fresh questions, 128 tokens each
3.63
llama.cpp
4.95
Ollama
6.48
PML-sRUN 0.2
7.42
PML-sRUN 0.3
ویرایش کدEditing codeیک فایل پایتون، پس داده شده با یک تغییرa Python file given back with one change
2.79
llama.cpp
3.87
Ollama
4.39
PML-sRUN 0.2
10.18
PML-sRUN 0.3
عمق گفتگوی بلندDeep in a long chatنوشتن پس از ۱٬۹۰۰ توکن گفتگو؛ Ollama زودتر از طول ثابت ایستادwriting after 1,900 tokens of chat; Ollama stopped before the fixed length
2.26
llama.cpp
اندازه گرفته نشدnot measured
Ollama
4.93
PML-sRUN 0.2
7.46
PML-sRUN 0.3

روی موتور آنلاین: کارت T4On the online engine: a T4

نیمبوس ۲ ایپکس در سرویس آنلاین روی یک کارت T4 اجرا می‌شود و کل مدل روی کارت جا می‌شود؛ آنچه می‌ماند، روش حدس جلوتر است. حدس با مدل کوچک ۰٫۶ میلیاردی به‌تنهایی، در بخش استدلال — بیشتر توکن‌های ایپکس — مدل را از حالت بدون حدس هم کندتر می‌کرد: 13.3 در برابر ۳۲٫۶. PML-sRUN 0.3.1 مدل کوچک و حدس n-gram را با هم به کار می‌برد: استدلال 38.4 و ویرایش 51.2 توکن در ثانیه.Nimbus 2 Apex runs online on a T4, and the whole model fits on the card; what is left to choose is how tokens are guessed ahead. The 0.6B draft model alone made reasoning -- most of Apex's tokens -- slower than no guessing at all: 13.3 against 32.6. PML-sRUN 0.3.1 uses the draft and n-gram drafts together: reasoning at 38.4 and edits at 51.2 tokens a second.

استدلال (فکر کردن پیش از جواب)Reasoning (thinking before the answer)توکن در ثانیه، ۲۵۶ توکنtokens a second, 256 tokens
13.30
draft 0.6B
32.60
no guessing
32.50
n-gram drafts
38.40
draft 0.6B + n-gram
حدس جلوترGuessing aheadاستدلالreasoningکدcodeویرایشeditفارسیPersian
draft 0.6B (the engine before 0.3.1)13.344.245.232.5
no guessing32.632.732.432.5
n-gram drafts32.532.442.233.3
draft 0.6B + n-gram (PML-sRUN 0.3.1)38.443.451.232.0

چطور کار می‌کندHow it works

PML-sRUN فایل مدل و کامپیوتر را می‌خواند و مدل را به همان تکه‌هایی می‌بُرد که llama.cpp می‌تواند جابه‌جا کند: هر لایه، کارشناس‌های مدل‌های MoE، جاسازی‌ها و خروجی. برای نوشتن هر توکن، هر تکه یک بار خوانده می‌شود؛ پس زمان، جمع «حجم ÷ سرعت» در جایی است که تکه‌ها نشسته‌اند: حافظه‌ی کارت بیش از ۱۰۰ گیگابایت در ثانیه، رم حدود ۲۰، دیسک ۰٫۵ تا ۵.PML-sRUN reads the model's file and the computer, and cuts the model into the pieces llama.cpp can place: each layer, a MoE model's experts, the embeddings and the output. Writing one token reads each piece once, so the time is the sum of size ÷ speed where the pieces sit: the card's memory at 100+ GB/s, the computer's at about 20, a disk at 0.5 to 5.

هر چه جا شود، روی کارتAs much as fits, on the card

حافظه‌ی آزاد واقعی کارت، منهای حافظه‌ی گفتگو (q8_0) و ۶۰۰ مگابایت برای کار خود کارت؛ بعد لایه‌ها از آخر به اول.The card's real free memory, less the chat's cache (q8_0) and 600 MB for the card's own work; then layers from the last one back.

حدس جلوتر، بدون مدل دومGuessing ahead, with no second model

حدس n-gram توکن‌های بعدی را از متن قبلی حدس می‌زند و مدل همه را یک‌جا بررسی می‌کند.n-gram drafts guess the next tokens from the text so far, and the model checks them in one pass.

رشته‌ها و کارت درستThe right threads and card

به تعداد هسته‌های واقعی؛ کارت از روی نامش، نه گرافیک مجتمع (در مک، گرافیک اپل).As many as the real cores; the card by its name, never an integrated GPU by mistake (on a Mac, Apple's own).

اندازه‌گیری، نه فقط حسابMeasured, not only calculated

طرح و همسایه‌هایش روی همان کامپیوتر اجرا می‌شوند و سریع‌ترین کنار مدل نگه داشته می‌شود.The plan and its neighbours run on the computer itself, and the fastest is kept beside the model.

روی چه چیزی آزمایش شدWhat it was measured on

کارت گرافیکGraphics cardNVIDIA GeForce GTX 1050 Ti · 3.54 GB free
پردازنده و رمProcessor and memoryCore i7-7700HQ · 4 cores · 15.9 GB
مدلModelQwen2.5-Coder-7B-Instruct · Q3_K_M · 3.6 GB · 28 layers
طول گفتگوContext16384 tokens
موتورEnginellama.cpp b10991 · Vulkan

هر چیدمان دو بار، به نوبت با بقیه، اندازه گرفته شد و بهترینِ دو بار ماند؛ طول جواب ثابت است. لپ‌تاپ در همان زمان کارهای دیگری هم می‌کرد؛ تفاوت‌های کمتر از حدود ۱۵٪ را با احتیاط بخوانید.Each arrangement ran twice, in turn with the others, and the better run was kept; answers have a fixed length. The laptop was doing other work meanwhile: read differences under about 15% with care.

همه‌ی چیدمان‌هاEvery arrangement

توکن در ثانیه؛ «خواندن» سرعت خواندن پیام بلند است و «بار» ثانیه‌های بالا آمدن.Tokens a second; “read” is how fast the long prompt is read, “load” the seconds to start.

چیدمانArrangementکوتاهshortویرایشeditعمیقdeepخواندنreadبارloadنسبت به llama.cppvs llama.cpp
plan در PML-sRUN 0.3in PML-sRUN 0.3طرح PML-sRUN 0.3: ۲۴ لایه روی کارت و حدس n-gramPML-sRUN 0.3's plan: 24 layers on the card, n-gram drafts7.4210.187.4687.27+104%
layers 24 ۲۴ لایه روی کارت، بدون حدس24 layers on the card, no drafts7.427.406.5588.115+104%
layers 24 + spec ngram-simple ۲۴ لایه + حدس n-gram ساده24 layers + simple n-gram drafts7.3010.946.9687.29+101%
layers 24 + spec ngram-mod ۲۴ لایه + حدس n-gram mod24 layers + n-gram mod drafts6.559.116.8387.111+80%
layers 24 + ubatch 256 + poll 0 ۲۴ لایه + دسته‌ی ۲۵۶ + poll 024 layers + ubatch 256 + poll 06.516.515.7182.711+79%
plan 0.2 طرح PML-sRUN 0.2: ۲۱ لایه، حاشیه‌ی ۹۰۰ مگابایتPML-sRUN 0.2's plan: 21 layers, a 900 MB margin6.484.394.9383.919+78%
cache in memory, layers 26 حافظه‌ی گفتگو در رم، ۲۶ لایه روی کارتthe chat's cache in memory, 26 layers on the card5.523.182.6175.915+52%
spec ngram-mod ۲۱ لایه + حدس n-gram mod21 layers + n-gram mod drafts5.387.485.3084.011+48%
spec ngram-simple ۲۱ لایه + حدس n-gram ساده21 layers + simple n-gram drafts5.359.075.7384.611+47%
poll 0 پردازنده در انتظار نمی‌چرخدthe processor does not spin while waiting5.245.274.5984.913+44%
ubatch 256 دسته‌های کوچک‌تر در خواندن پیامsmaller batches reading the prompt5.185.274.2577.311+43%
cache q4_0, layers 24 حافظه‌ی گفتگوی فشرده‌تر (q4_0)، ۲۴ لایهa smaller cache (q4_0), 24 layers4.984.921.4665.915+37%
ollama Ollama 0.40.5 با همان فایل، روی کارت انویدیاOllama 0.40.5, the same file, on the NVIDIA card4.953.87—77.018+36%
threads 3 ۳ رشته به‌جای ۴3 threads instead of 44.774.422.8882.613+31%
spec ngram-cache ۲۱ لایه + حافظه‌ی n-gram21 layers + an n-gram cache4.733.383.0980.813+30%
cache f16 حافظه‌ی گفتگو بدون فشرده‌سازی (f16)an uncompressed cache (f16)4.492.732.8781.911+24%
threads 8 ۸ رشته (هایپرتردینگ)8 threads (hyper-threads)4.123.334.0678.811+13%
layers 23 ۲۳ لایه روی کارت23 layers on the card4.104.994.3785.913+13%
llama.cpp alone llama.cpp بدون تنظیم؛ خودش تصمیم می‌گیرد چه مقدار روی کارت برودllama.cpp left to itself: it decides how much goes on the card3.632.792.2678.315+0%

آنچه بالا نیامدWhat did not start

tensors, cache q4_0درایور Vulkan این کارت با تقسیم تنسوری از کار افتادthis card's Vulkan driver lost the device with tensor-level placement
layers 25حافظه‌ی کارت تمام شدthe card ran out of memory
layers 26حافظه‌ی کارت تمام شدthe card ran out of memory
cache q4_0, layers 26حافظه‌ی کارت تمام شدthe card ran out of memory
cache in memory, layers 28حافظه‌ی کارت تمام شدthe card ran out of memory
flash attention off (cache f16)بدون Flash Attention در این طول گفتگو جا نشدwithout flash attention it did not fit at this context

آنچه آموختیمWhat it taught

هر لایه‌ی بیشتر روی کارت، بزرگ‌ترین اهرم استEach layer more on the card is the biggest lever

۲۱ لایه 6.48 و ۲۴ لایه 7.42 توکن در ثانیه. ۲۴ لایه با ۶۰۵ مگابایت جای خالی بالا آمد و ۲۵ لایه با ۴۹۹ مگابایت نه؛ حاشیه‌ی ۹۰۰ مگابایتی نسخه‌ی قبل سه لایه را بی‌دلیل بیرون نگه می‌داشت.21 layers wrote 6.48 and 24 layers 7.42 tokens a second. 24 started with 605 MB left and 25 did not with 499; the old 900 MB margin kept three layers off the card for nothing.

حدس n-gram ویرایش را چند برابر تند می‌کندn-gram drafts multiply the speed of an edit

با همان ۲۴ لایه، ویرایش از 7.40 به 10.18 توکن در ثانیه رسید؛ جواب‌های کوتاه تقریباً همان ماند.With the same 24 layers an edit went from 7.40 to 10.18 tokens a second; short answers stayed about the same.

حافظه‌ی گفتگو در رم: برای پیام کوتاه خوب، برای گفتگوی بلند بدThe cache in memory: good for short, bad for long

دو لایه بیشتر روی کارت جا می‌شود، ولی در عمق گفتگوی بلند نوشتن به 2.61 افت کرد.Two more layers fit on the card, but deep in a long chat writing fell to 2.61.

Ollama روی این لپ‌تاپ کارت انویدیا را خودش پیدا نکردOllama did not find the NVIDIA card on its own

در حالت پیش‌فرض گرافیک اینتل را انتخاب کرد و از کار افتاد؛ حالت CUDA هنگام شناسایی کارت از کار افتاد. فقط با محدود کردن Vulkan به کارت انویدیا اجرا شد: ۱۵ لایه از ۲۹.By default it chose the Intel GPU and crashed; its CUDA mode crashed finding the card. Only with Vulkan limited to the NVIDIA card did it run: 15 layers of 29.

تقسیم تنسوری روی این کارت ممکن نیستTensor-level placement is not possible on this card

فرستادن حتی یک تنسور به پردازنده درایور Vulkan این کارت را از کار انداخت؛ PML-sRUN لایه‌های کامل را جابه‌جا می‌کند که همه‌جا کار می‌کند.Sending even one tensor to the processor lost this card's Vulkan device; PML-sRUN moves whole layers, which works everywhere.

استفادهUse it

PML-sRUN با مجوز MIT منتشر شده است: یک پنل ساده در مرورگر، یا خط فرمان. فقط پایتون ۳٫۱۰ لازم است؛ موتور llama.cpp را خودش دریافت می‌کند.PML-sRUN is out under the MIT license: a simple panel in the browser, or the command line. It needs only Python 3.10; it fetches llama.cpp itself.

git clone https://github.com/mmdop/pml-srun.git
cd pml-srun
python panel.py