
ãFastFlowLMãRyzen AIã®NPUãUbuntuã§å©ã! æãããŠæ§èœã¯? ïœDockerã§ç°å¢æ§ç¯ã楜ã Qwen3.6 Gemma4察å¿ïœ
ããã«ã¡ã¯Rcatã§ãã
ä»åã¯ãšããšãNPUãè§Šã£ãŠãããŸãã
ä»ãŸã§äžåºŠãæãä»ããããŠããŸããã§ãããããã£ãšãã®æãæ¥ãŸããã

ã¯ããã«
å©çšèŠçŽ
æ å ±ãäœåã®æŽ»çšæã¯äºåã«å©çšèŠçŽãã確èªãã ããã
ã³ã¡ã³ãã«ã€ããŠ
å©çšèŠçŽã®ã¬ã€ãã©ã€ã³ã確èªã®äžã³ã¡ã³ãããŠãã ããã
åã£ãŠããªãã³ã¡ã³ãã¯åé€ããŸãã
æŠèŠ
FastFlowLMãšã¯
XDNAç¹åã®æšè«ã©ã³ã¿ã€ã ãã€ãŸãRyzen AIã®NPUã®ããã®å°çšæšè«ãœããã
Ubuntuã«ã察å¿ããŠãããããä»åã¯ããã䜿çšããã
åæ
ãã·ã³ã¯EVO-X2 Ryzen AI MAX+ 395æèŒã§ãã
INT8ã§50TOPSã®NPUãæèŒããŠããŸãããšã¯ããããããã©ã®çšåºŠãªã®ãããããªãã®ã§åãããŠãããŸããã
NPUã¯OSã«èªèãããŠããåæã§ãã
å°ãªããšããUbuntu 26.04ã§ããã°ãã€ã³ã¹ããŒã«ããã ãã§èªèãããæš¡æ§ã
å°å ¥
ç°å¢æ§ç¯
å ¬åŒã®ããæ¹ã¯ãã¡ãã«èŒã£ãŠããŸãã
ãããèŠãéããUbuntu26.04ã¯ãªãã24ã«æ¯ã¹ãŠé¢åã«ãªã£ãŠãŸãã
ããã§Dockerã®ç»å Žã
ã³ã³ããã®ããŒã¹ã€ã¡ãŒãžã24.04ã«ããããšã§ããã£ã¡ã®ç°¡åãªæé ã§åãããŠããŸããŸãã
Dockerfile
å
¬åŒã®æé ãã»ãŒãã®ãŸãŸã€ã¡ãŒãžåããã ãw

docker-compose
ãããããã®ã¯ãã£ã¡ã§ãã
NPUãããŠã³ãããŠãã£ããã¡ã¢ãªå²ãåœãŠå€ããããªã©èšå®ãå€ãã§ãã

ãšã¯ãããããæºåã§ããã°ããšã¯äžèšã³ãã³ããæã€ã ã
docker compose build
docker compose up -dDockerã¯äžåºŠæºåããããŠããŸãã°ããã®åŸèªåãã»ãã®äººã䜿ãæã楜ãªãã§ãããã

åäœæ€èšŒ
åæ
FastFlowLMã¯WEB UIããªãã®ã§ãäœãããã³ããšã³ããèªåã§çšæããå¿
èŠããããŸãã
ä»åã¯ãã€ã䜿ã£ãŠãZooCodeã®æ¥ç¶å
ãããã«åãæ¿ããããšã§æ€èšŒããŸãã
èšå®ãšã¢ãã«éžå®
èšå®ã¯ãããªæãã
URLãæ£ããèšå®ããããšãã¢ãã«äžèЧãååŸã§ããŸãã
å°ãç®ã®ã¢ãã«ãå€ãã§ãããQwen3.6ãšGPT OSSã ã巚倧ãªã®ããããŸãã
gpt-ossã£ãŠããå€ããŠã»ãã«å£ã£ãŠããã ãããããããªãã®ã§ã¯?ããããGemma4 26B-A4ã®ã»ãããŸã 圹ã«ç«ã€ãã

Qwen3.6 35B-A3
ããã¯ç§ãæ®æ®µãã䜿ã£ãŠããã®ãšåã奎ã§ããã
NPUãšGPUã®å·®ãããããããã®ã§æ¡çš!
ã¡ã¢ãªã¯âŠ26.5GB䜿çšäžã
å ¥å25kæ
P:154.7
D:9.8
ãããé ããâ GPUãªã3å以äžåºãããºã
{
"id": "chatcmpl-df0c26202ae0b72cf0a32e1a",
"object": "chat.completion.chunk",
"created": 1785596728,
"model": "qwen3.6-moe:35b-a3b",
"system_fingerprint": "fp_bda01489569a79e9",
"choices": [
{
"index": 0,
"delta": {
"content": null
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25232,
"completion_tokens": 357,
"total_tokens": 25589,
"active_kv_tokens": 25589,
"max_kv_token_capacity": 128000,
"kv_token_occupancy_rate_percentage": 19.99140739440918,
"load_duration": 1.25e-06,
"prefill_duration_ttft": 163.0605312,
"decoding_duration": 36.447756,
"prefill_speed_tps": 154.7400821910238,
"decoding_speed_tps": 9.7948416906654
}
}åè llama.cpp (Qwen3.6 35B-A3 Q8)
prompt eval time = 14515.38 ms / 11299 tokens ( 1.28 ms per token, 778.42 tokens per second)
eval time = 25655.38 ms / 953 tokens ( 26.92 ms per token, 37.15 tokens per second)
total time = 40170.75 ms / 12252 tokens
draft acceptance = 0.47342 ( 463 accepted / 978 generated), mean len = 1.95
Gemma4 E2B-itÂ
軜ããã§ããããèŠçŽçšåºŠãªãé·æã§ãæåŸ
ãããã¢ãã«ã
æ¶è²»ã¡ã¢ãªã¯7.3GB
å ¥å12kæ
P:815
D:14.2
å ¥å76kæ
P:385
D:5.3
ãã³ãŒããæ³å以äžã«é ãã§ãããã€ãã¯ã¡ã¢ãªåž¯åãïœãšãèšã£ãŠããŸããããããªã¬ãã«ã§ã¯ãããŸããã垯åã®ããã§ã¯ãªãã§ãããã
{
"id": "chatcmpl-fb8aa0246ed0f0d40d3052cb",
"object": "chat.completion.chunk",
"created": 1785592305,
"model": "gemma4-it:e2b",
"system_fingerprint": "fp_6a00954e1ca94b1b",
"choices": [
{
"index": 0,
"delta": {
"content": null
},
"finish_reason": "tool_calls"
}
],
"usage": {
"prompt_tokens": 12600,
"completion_tokens": 435,
"total_tokens": 13035,
"active_kv_tokens": 13035,
"max_kv_token_capacity": 32768,
"kv_token_occupancy_rate_percentage": 39.7796630859375,
"load_duration": 5.766814208,
"prefill_duration_ttft": 15.458353152,
"decoding_duration": 30.517254,
"prefill_speed_tps": 815.0932946159154,
"decoding_speed_tps": 14.254231393165322
}
}{
"id": "chatcmpl-48b5e11d0e76889d5ee0b60e",
"object": "chat.completion.chunk",
"created": 1785594485,
"model": "gemma4-it:e2b",
"system_fingerprint": "fp_146218034f9b72cb",
"choices": [
{
"index": 0,
"delta": {
"content": null
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 76220,
"completion_tokens": 781,
"total_tokens": 77001,
"active_kv_tokens": 77001,
"max_kv_token_capacity": 128000,
"kv_token_occupancy_rate_percentage": 60.15703201293945,
"load_duration": 6.061860864,
"prefill_duration_ttft": 197.619073024,
"decoding_duration": 145.112992,
"prefill_speed_tps": 385.6915166824176,
"decoding_speed_tps": 5.382012935134023
}
}Qwen3.5 0.8B
ãããªã£ãããã£ãšå°ããã®ãããŸã
æ¶è²»ã¡ã¢ãªã¯3.7GB
å ¥å12kæ
P:1326
D:27.9
å ¥å76kæ
P:951
D:13.1
12kã®æã¯ååãªé床ãåºãŠãŸãã!ãšã¯ãã0.8Bã
ãããŠ76kã«ãªããš0.8Bãšã¯æããªããã³ãŒãã®é
ãã
{
"id": "chatcmpl-4673520ca77f7cfa209ea9aa",
"object": "chat.completion.chunk",
"created": 1785598303,
"model": "qwen3.5:0.8b",
"system_fingerprint": "fp_e16d58b9e93912de",
"choices": [
{
"index": 0,
"delta": {
"content": null
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 16220,
"completion_tokens": 660,
"total_tokens": 16880,
"active_kv_tokens": 16880,
"max_kv_token_capacity": 128000,
"kv_token_occupancy_rate_percentage": 13.187499046325684,
"load_duration": 255.035293696,
"prefill_duration_ttft": 12.225881088,
"decoding_duration": 23.692536,
"prefill_speed_tps": 1326.6937477349036,
"decoding_speed_tps": 27.85687441817119
}
}{
"id": "chatcmpl-de9d9ecb8c2c6f13d079c949",
"object": "chat.completion.chunk",
"created": 1785598392,
"model": "qwen3.5:0.8b",
"system_fingerprint": "fp_745b4cee65da5077",
"choices": [
{
"index": 0,
"delta": {
"content": null
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 77109,
"completion_tokens": 380,
"total_tokens": 77489,
"active_kv_tokens": 77489,
"max_kv_token_capacity": 128000,
"kv_token_occupancy_rate_percentage": 60.53828048706055,
"load_duration": 6.9e-07,
"prefill_duration_ttft": 81.030848512,
"decoding_duration": 28.997508,
"prefill_speed_tps": 951.6005498644234,
"decoding_speed_tps": 13.104574365493752
}
}ãŸãšã
50TOPSã£ãŠããåŠçèœåã£ãŠå€§ããããšãªããã§ããã
copilot+pcã®èŠä»¶ã確ã40TOPSã®ã¯ããªã®ã§ããã®çšåºŠã§æ¬åœã«ããã®ããšæã£ãŠããŸããäœãã§ããªããw
確ãRyzen AI Max+ 395ã®åèšã126TOPS?ãšãèšãããŠãã¯ãã§ããããã®ãã¡ã®ã»ãŒååãæã£ãŠããšã¯å°åºæããªãã
äŸãã°ãã®çµæãèããŠãã ãã
Gemma4 E2B 4Bit `å
¥å12kæ P:815 / D:14.2`ã§ãããå¥å£ã§ãããªããã©ãŒãã³ã¹ãåºãŠãŸãã
Gemma4 E4B IQ4NL å
¥å12kæ P:1436 / D:36.4`ãããã¯llama.cpp(ROCm7.2)ã§ããã€ãŸãGPUã§åè¿ãã§ããããããã©ã¡ãŒã¿æ°ãåãç·åœ¢ã§èãããªã4åã
æ®ãã®76TOPSãGPU?ã§ãåãããªããããã«16C32Tã®CPUã©ãè¡ã£ãã«ãªããŸãã
ãŸããã®ãéãã®ã§ååã«æ¯ã¹ãŠã¯ãããªããã§ããããã©ãããã«ããŠã匱ãããŸãã? ãã¥ãŒã©ã«ãããã¯ãŒã¯ç¹åã§ãããããªãã
èšç®åæ°ã§50TOPSãšèšã£ãŠããäžã«ãããåèš126TOPSãšèšã£ãŠãã以äžçé»åã§åãããã¯èšãèš³ã«ãªããŸãããããèŠããä»®ã«CPUãã»ãŒå¯äžããŠãªããŠã7å²ãããã®èœåã¯ããã®ã§ã¯ãšèããŠããŸãã
ãããçŸå®ã¯ååã©ããã20%çšåºŠããèœåãåºãªãã
NPUéãæ·±ããã§ã
ããã§ã¯ãŸããäŒãããŸãããã
ãªã³ã¯é
ææ³æçš¿ãã©ãŒã
ã³ã¡ã³ãã¯å ¬éã§æ¥ãããã!! Rcatã ãã«éããã人åã