1"use strict";(globalThis.webpackChunkllm_d_website=globalThis.webpackChunkllm_d_website||[]).push([[812],{13707(e,n,i){i.r(n),i.d(n,{assets:()=>g,contentTitle:()=>s,default:()=>d,frontMatter:()=>l,metadata:()=>a,toc:()=>r});var a=i(67064),t=i(74848),o=i(28453);const l={title:"Scaling Vision-Heavy Kimi-VL with Heterogeneous E/PD on llm-d and SGLang",description:"Benchmarking disaggregated VLM serving of Kimi-VL-A3B-Instruct with 4 Intel Arc Pro B60 vision encoder and 1 NVIDIA H200 language model worker, delivering 2.4x-2.8x higher throughput and 69%-80% lower TTFT than collocated serving.",slug:"scaling-vision-heavy-kimi-vl-with-heterogeneous-epd",date:"2026-08-05T09:00",authors:["xiaojunzhang","weifengyao","fanzhao","yuanwu","jianangu","carloscosta","alexnails"],tags:["blog","inference","heterogeneous","multimodal","disaggregation","vlm","sglang"]},s="Scaling Vision-Heavy Kimi-VL with Heterogeneous E/PD on llm-d and SGLang",g={authorsImageUrls:[void 0,void 0,void 0,void 0,void 0,void 0,void 0]},r=[];function c(e){const n={p:"p",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Vision-language model (VLM) inference involves several stages: vision encoding, language model prefill, and language model decode. Each stage has different compute and memory characteristics, making heterogeneous disaggregation a natural fit. This gives us the flexibility to place different stages to different accelerator resources based on their compute and memory characteristics."}),"\n",(0,t.jsx)(n.p,{children:"In this post, we evaluate a vision-heavy
1Kimi-VL serving workload on llm-d and SGLang. We place vision encoding stage in 4 Intel Arc Pro B60 (Intel B60) GPUs while keeping prefill and decode stage on 1 NVIDIA H200 GPU. Compared with the collocated baseline, the measured heterogeneous E/PD configuration achieved 2.4x-2.8x higher throughput and reduced mean Time To First Token (TTFT) by roughly 69%-80% under load."})]})}function d(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},28453(e,n,i){i.d(n,{R:()=>l,x:()=>s});var a=i(96540);const t={},o=a.createContext(t);function l(e){const n=a.useContext(o);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),a.createElement(o.Provider,{value:n},e.children)}},67064(e){e.exports=JSON.parse('{"permalink":"/blog/scaling-vision-heavy-kimi-vl-with-heterogeneous-epd","editUrl":"https://github.com/llm-d/llm-d/edit/main/website/blog/2026-08-05_scaling-vision-heavy-kimi-vl-with-heterogeneous-epd.mdx","source":"@site/blog/2026-08-05_scaling-vision-heavy-kimi-vl-with-heterogeneous-epd.mdx","title":"Scaling Vision-Heavy Kimi-VL with Heterogeneous E/PD on llm-d and SGLang","description":"Benchmarking disaggregated VLM serving of Kimi-VL-A3B-Instruct with 4 Intel Arc Pro B60 vision encoder and 1 NVIDIA H200 language model worker, delivering 2.4x-2.8x higher throughput and 69%-80% lower TTFT than collocated serving.","date":"2026-08-05T09:00:00.000Z","tags":[{"inline":false,"label":"blog posts","permalink":"/blog/tags/blog","description":"everyday blog posts"},{"inline":false,"label":"Inference","permalink":"/blog/tags/inference","description":"LLM inference serving and optimization"},{"inline":false,"label":"Heterogeneous","permalink":"/blog/tags/heterogeneous","description":"Heterogeneous inference hardware and serving"},{"inline":false,"label":"Multimodal","permalink":"/blog/tags/multimodal","description":"Multimodal model serving and optimization"},{"inline":false,"label":"Disaggregation","permalink":"/blog/tags/disaggregation","description":"Disaggregated inference serving"},{"inline":false,"label":"VLM","permalink":"/blog/tags/vlm","description":"Vision-language model serving and optimization"},{"inline":false,"label":"SGLang","permalink":"/blog/tags/sglang","description":"SGLang inference engine integration and performance"}],"readingTime":6.94,"hasTruncateMarker":true,"authors":[{"name":"Xiaojun(Robin) Zhang","title":"AI Software Solutions Engineer, Intel","socials":{"linkedin":"https://www.linkedin.com/in/zhangxiaojunhust/","github":"https://github.com/xiaojun-zhang"},"imageURL":"/img/blogs/xiaojunzhang.webp","key":"xiaojunzhang","page":null},{"name":"Weifeng(Matrix) Yao","title":"AI Principal Engineer, Intel","socials":{"linkedin":"https://www.linkedin.com/in/weifeng-yao-040b0322/","github":"https://github.com/yao-matrix"},"imageURL":"/img/blogs/weifengyao.webp","key":"weifengyao","page":null},{"name":"Fan Zhao","title":"Senior Engineering Director, Intel","socials":{"linkedin":"https://www.linkedin.com/in/fan-zhao-a1560a20/"},"imageURL":"/img/blogs/fanzhao.webp","key":"fanzhao","page":null},{"name":"Yuan Wu","title":"AI Frameworks Engineer, Intel","socials":{"github":"https://github.com/yuanwu2017"},"imageURL":"https://github.com/yuanwu2017.png","key":"yuanwu","page":null},{"name":"Jianan Gu","title":"AI Frameworks Engineer, Intel","socials":{"github":"https://github.com/jianan-gu"},"imageURL":"/img/blogs/jianangu.webp","key":"jianangu","page":null},{"name":"Carlos Costa","title":"Distinguished Engineer, IBM","email":"[email protected]","url":"https://github.com/chcost","socials":{"linkedin":"https://www.linkedin.com/in/carlos-costa-9b9b1a1/","github":"https://github.com/chcost"},"imageURL":"https://github.com/chcost.png","key":"carloscosta","page":null},{"name":"Alex Nails","title":"Member of Technical Staff, RadixArk","socials":{"linkedin":"https://www.linkedin.com/in/alex-nails/","github":"https://github.com/alexnails"},"imageURL":"/img/blogs/alexnails.webp","key":"alexnails","page":null}
1],"frontMatter":{"title":"Scaling Vision-Heavy Kimi-VL with Heterogeneous E/PD on llm-d and SGLang","description":"Benchmarking disaggregated VLM serving of Kimi-VL-A3B-Instruct with 4 Intel Arc Pro B60 vision encoder and 1 NVIDIA H200 language model worker, delivering 2.4x-2.8x higher throughput and 69%-80% lower TTFT than collocated serving.","slug":"scaling-vision-heavy-kimi-vl-with-heterogeneous-epd","date":"2026-08-05T09:00","authors":["xiaojunzhang","weifengyao","fanzhao","yuanwu","jianangu","carloscosta","alexnails"],"tags":["blog","inference","heterogeneous","multimodal","disaggregation","vlm","sglang"]},"unlisted":false,"prevItem":{"title":"Pull, Don\'t Recompute: Peer-to-Peer KV Cache Sharing in llm-d","permalink":"/blog/p2p-kv-cache-sharing-llm-d"},"nextItem":{"title":"Serving GLM-5.2 for Agentic Workloads on llm-d","permalink":"/blog/serving-glm-5-2-agentic-workloads-on-llm-d"}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.