[BidClub_]
SemiAnalysis · · 51 分钟

第002期——InferenceX 2.0发布(技术团队)| Cam Quilici、Bryan Shan、Doug O'Laughlin、Jordan Nanos

Cam QuiliciBryan ShanDoug O'LaughlinJordan Nanos

播客
TL;DR
  • InferenceX 2.0的头号结果是:在低交互性场景下,GB200/GB300单GPU的DeepSeek-R1吞吐量达到完全调优H100的20倍;在100 tokens/sec/user下则达到80–100倍,而H100基本无法提供这一速度。 关键机制在于NVLink域:DeepSeek的256个专家分散在“72块GPU组成的一台机器”上,而不是跨InfiniBand通信;Cam Quilici称这直接“碾压”其他方案(“frame mogs”)。Jordan Nanos强调,100 tok/s是实际生产需求——Cerebras上的Codex Spark等“快速”层级已经超过这一速度,而标准模型约为40 tok/s。
  • 软件的复合增速不亚于硬件:AMD的MI355多节点DeepSeek方案,在约1个月的ROCm优化后,于20 tok/s交互性下,单GPU吞吐量大致从约1,000提升至约3,000 tokens/sec,接近翻了3倍。 Cam对现有基准测试的核心批评是“刷榜”——只截取某个时间点、Pareto前沿上的某个位置,每3到6个月提交一次结果,而且供应商可以撤下落败成绩。InferenceX每晚运行一次,结果“一旦上线,就不会被撤下”。
  • 多token预测基本是“免费优化”:开启MTP后,B300通过Dynamo + TensorRT以68 tok/s/user提供DeepSeek服务,单百万tokens成本从25美分降至5.7美分——成本下降约80%,GSM-8K准确率没有损失。 DeepSeek普及了预训练MTP头,如今“基本人人都在用”,包括GLM-5和Qwen 3.5;它现在确实已经进入生产环境。
  • 如果看TCO而不是原始吞吐量,MI355反超B200:两者在FP8 SGLang吞吐量上“实际上完全相当”,但MI355约50美分的价格差使其每百万tokens便宜约20美分——大约25%的优势,在“利润率本就很薄”时意义重大。 但AMD的问题在于软件可组合性:FP8单节点能与B200匹敌,FP4则明显更差,再叠加解耦和MTP后性能进一步恶化——说明单独有效的开关,组合起来未必有效。
  • Doug O'Laughlin从经济学角度得出的结论是,推理利润率偏乐观:当前基准使用随机单轮数据,完全没有前缀缓存,因此“这已经是最差情况——接下来只会变得更好”。 随着MTP、多轮缓存等优化叠加,价格可能下降约50%;相较SemiAnalysis最初的tokenomics估算,他现在认为Max“可能没有你想象得那么不赚钱”。Jordan的制约因素是:前沿模型可能比DeepSeek更大,而且这些收益只适用于最新GPU,不适用于仍在承担推理任务的大量老旧GPU集群。
  • 路线图包括:V3/V4覆盖Trainium和TPU,并计划为DeepSeek V4提供day-zero支持;团队目前正争取为Qwen 3.5、Minimax和Kimi 2.5提供day-zero支持。 他们还计划针对多模态智能体工作负载实现EPD(encoder-prefill-decode)解耦,并推出真实世界多轮前缀缓存基准。当前瓶颈是,公开可用的智能体/多模态数据集基本不存在——最好的现成数据是WildChat,但“已经3年历史了……都是让GPT当心理治疗师的人”——因此团队计划自行生成轨迹。
  • 整个AI交易的尾声,是Cam给出的一个坦诚对冲:他承认自己“有过一个转瞬即逝的念头——如果模型就这样不再变强了怎么办?” 那又怎样?“那我们就完蛋了,老兄。”他的答案正是InferenceX本身所记录的主线:即便“模型不再变聪明”,它们仍在“变得更便宜、更快、性能更强”,因此扩散仍会继续扩大。Cam结合自己使用Codex 5.3的体验——“处理针对性问题更好”,而Opus 4.6“更适合泛化的整体感觉”——Doug也表示认同,认为这说明他们会根据证据更新判断。
摘要 · 为研究而整理的核心内容

1. InferenceX 2.0将基准测试从单节点部署推进到前沿级推理服务

  • Doug O'Laughlin拿更名开了个玩笑:InferenceMax改成InferenceX,“向HBO Max致意”。Cam Quilici表示,1.0花了3个月,只测试DeepSeek、GPT-OSS和Llama 70B的“单节点部署”;但“大型实验室、新型云厂商和无服务器服务商都在使用更先进的技术”,包括prefill解耦、广泛专家并行和投机解码。2.0将这些技术连同GB300和B300硬件全部纳入,目的是更准确地呈现“前沿模型在生产环境中的推理服务形态”。
  • 技术核心是NVLink规模的专家并行:DeepSeek的256个专家分散在多块GPU上——单节点内是EP8,而在GB200 NVL72域内则是“72块GPU组成的一台机器”;相比之下,8个B200节点需要通过InfiniBand扩展。MI355多节点及其Pollara网卡也已纳入测试。
  • 所有内容均已公开:inferencex.com上有仪表盘,代码仓库也已开放,任何人都可以fork并运行。

2. GB200/GB300在DeepSeek上“碾压”H100,单GPU吞吐量领先20–100倍

  • Jordan Nanos对头图的解读是:即使H100已经叠加所有调优,GB200/GB300在低交互性下的单GPU吞吐量仍达到H100的20倍;在100 tokens/sec/user下,“它做的事情H100根本做不了”,单GPU吞吐量高出80–100倍。
  • 为什么100 tok/s重要?所谓“快速模型”已经以高于这一水平的速度提供服务——Cerebras上的Codex Spark,以及疑似运行在Trainium/TPU上的Opus 4.6 Fast(Doug补充说:“他们也有GPU”);标准模型则在约40 tok/s。“这是真实需求”,因此这一代际提升“显而易见”。

3. 持续运行的基准:每晚测试、不撤榜,以及MI355一个月翻3倍

  • Cam批评此前一些未点名的联盟基准存在“刷榜”问题:只选取某个时间点、Pareto前沿上的某个位置,用一个吞吐量数字做宣传,但“推理问题远比这复杂”。InferenceX按照vLLM、SGLang和TensorRT的发布节奏,每晚或每周运行;不同于以供应商为中心、落败公司“可以撤下结果”的基准,InferenceX的结果“一旦上线,就不会被撤下”。
  • 以AMD的一套多节点方案为例,据Cam所知,该方案于1月8日首次公开;截至2月中旬,MI355在FP8、20 tok/s交互性下的单GPU吞吐量已从约1,000提升至约3,000 tokens/sec——软件层面的优化在约1个月内带来近3倍提升。Cam说,硬件每18–24个月才更新一次,“这些都只是工程问题”。
  • 两位主持人也提前回应了偏袒质疑:方案直接来自AMD和NVIDIA的工程师——Cam向Dynamo、TensorRT-LLM和AMD Distributed Inference团队“致以全部功劳”——但无论谁胜出,结果都会照常发布。

4. 开关组合的难题——以及AMD的具体短板

  • Cam描绘了现代推理引擎的现状:vLLM、SGLang和TensorRT-LLM的规模“已经膨胀”,留下“1,000个不同的环境变量”;要为每种部署找到正确组合,“需要对这些框架有非常深入的理解”。Bryan Shan进一步指出:“问题不是把好用的开关简单叠加,而是找到彼此组合后仍然有效的开关。”
  • Bryan表示,AMD的具体问题在于:单个开关能够实现标称增益,但叠加后无法复现。Cam概括道,普通单节点FP8“与B200相当”,FP4则“明显更差”;加入解耦和MTP后,性能甚至比前一步更差——“软件的可组合性目前是AMD的问题,但我认为他们可以做得更好”。

5. MTP带来80%的免费降本;在TCO维度,MI355胜过B200

  • Bryan解释说,DeepSeek普及了预训练多token预测头,利用decode受内存带宽限制的特性,用已经生成的logits验证推测token——这几乎是“免费优化”,且在GSM-8K上验证了准确率没有下降。它“确实已经进入生产环境”,Jordan还指出,GLM-5和Qwen 3.5也已支持MTP。
  • 最有冲击力的数字是:B300通过Dynamo/TensorRT以68 tok/s/user提供DeepSeek服务,开启MTP后,在3:1输入/输出比例下,每百万tokens成本从25美分降至5.7美分,降幅约80%。Cam不愿把这说成成本完全传导:“我不了解这里面的经济学……我假设部分节省会让终端用户受益,但并不完全确定。”
  • 从TCO看,B200和MI355在FP8 SGLang上的吞吐量相当;但SemiAnalysis把服务器、电力等全部成本纳入模型后发现,MI355便宜约50美分,在现实交互性下每百万tokens的成本低约20美分。Jordan说,这是25%的变化,“在利润率本就很薄的情况下”相当关键。
  • Doug更新了他的tokenomics判断:当前运行使用随机单轮tokens,没有任何前缀缓存,因此Cam认为这已经是“最差情况——接下来只会变得更好”。Doug的结论是:“从推理利润率角度看相当乐观……Max可能没有你想象得那么不赚钱。”Jordan则给出制约因素:DeepSeek可能小于前沿模型,最新优化还没有覆盖整个GPU集群,而老旧GPU仍在承担推理任务——“你需要优化所有这些东西,而不只是GB300 NVL72”。

6. 路线图要经过尚不存在的数据集

  • V3的目标包括覆盖Trainium和TPU(“等我们做到时一定很棒”——可能是V3,也可能是V4)、为DeepSeek V4提供day-zero支持,以及目前争取为Qwen 3.5、Minimax和Kimi 2.5提供day-zero支持。Bryan还提出EPD(encoder-prefill-decode)解耦,用于测试图像场景,因为Browser Use和Playwright式智能体工作流都需要视觉能力。
  • Cam坦言,真正的多轮、智能体、多模态数据集在公开渠道“基本不存在”,因为这类数据对训练太有价值。“现在网上最好的数据集是WildChat,但它已经3年历史了……都是让GPT-4o当心理治疗师的人。”团队计划在OpenCode实例中启动前沿模型,模拟编程环境并捕捉轨迹,形成可重复的内部流程,而不是一次性的黄金数据集。

7. 尾声:Codex的180度转向、人的瓶颈,以及Cam对模型停滞的担忧

  • Doug希望把这次认知转变记录下来,以回应Rune在Twitter上的嘲讽:Cam遇到一个Opus无法解决的FFmpeg问题,切换到Codex 5.3后,“15分钟内我就说,老兄,这个更好”——“Codex更适合针对性问题,Opus更适合整体感觉。”Doug的更高层判断是,锯齿状前沿——一次性解决明确问题,与搭建完整项目之间的差异——是智能体基准测试中“最有趣的问题”,而且“这是一个多极世界”。
  • 对于如今是否轮到人类成为瓶颈,Doug说,在大多数简单任务上,他觉得自己就是瓶颈;模型现在想主动写代码,他只需要给出提示。但Cam有所保留:如果模型“走上了错误的路径,老兄,那就完了”。
  • Cam经历了一个看空时刻:每档CEO播客都默认模型会“无限、永远地变好……但如果事实不是这样呢?那我们就完蛋了,老兄。”Doug的回答是:强信念、弱持有;即使模型进入平台期,也“足以永远改变我们的生活”。Cam最后回到节目的主旨:“也许模型没有变得更聪明……但它们正在变得更便宜、更快、性能更强”,无论如何,扩散都会继续扩大。
Jordan Nanos

All right. Welcome back to the SemiAnalysis Weekly Podcast, No. 2. Today, Doug and I are joined by Cam Quilici and Bryan Shan. We're going to talk about InferenceX. Guys, welcome to the show.

Cam Quilici

Hey, what's up, Jordan?

Bryan Shan

Nice to be here.

Jordan Nanos

We're covering, I think, all 3 major time zones right now in the U.S., right?

Cam Quilici

Yep.

Jordan Nanos

We're missing Mountain Time, maybe, but we've got Pacific, Eastern, and Central representing. Doug, welcome back, man. You just got off the train?

Doug O'Laughlin

Yeah. I just came down from Boston, took the train, and took a lot of calls on the train. Now here we are, having our weekly podcast.

Cam Quilici

How long is the train ride from Boston to New York?

Doug O'Laughlin

It's like 4 hours, dude.

Cam Quilici

It's very long.

Doug O'Laughlin

Honestly, and this is completely off topic already, it's just nice that you don't have to go through airport security and stuff like that. You can usually work on the train. That's my favorite part. The Wi-Fi is okay.

Cam Quilici

Do you buy the first class on Metro—

Doug O'Laughlin

Yeah.

Cam Quilici

—or whatever?

Doug O'Laughlin

Yeah, dude. It's business class, bro. Pretty expensive. So, yeah, but let's go.

Cam and Bryan, and also Jordan, are all part of the team that does the beautiful work at InferenceX, not Max. I think that's what we're going to go over today, right? Am I—

Cam Quilici

Yep.

Doug O'Laughlin

Am I off base?

1. InferenceX Version 2 Expands The Benchmark

Jordan Nanos

Yeah, absolutely. So, obviously, Version 2 of the InferenceX article came out earlier this week, and in the previous edition, there have been a lot of updates. First of all, there's the name change from InferenceMax to InferenceX. Shout-out to HBO Max for that one.

Doug O'Laughlin

Perfect.

Jordan Nanos

The other, more interesting changes are really focused on 2 things. One is the dashboard itself, which anybody can log into and see. You can go to inferencemax.ai or inferencex.semianalysis.com.

Cam Quilici

InferenceX.ai.

Jordan Nanos

InferenceX.com, not AI, right?

Cam Quilici

Oh, .com, right. Yeah.

Jordan Nanos

Any of them work. You can actually see the results for yourself. We can talk about what these results actually are.

The second part is the code. In other words, it's an open repo where anybody can see how to run this stuff, fork it, and use it for themselves. Guys, can you start by giving more background on why we're putting out this 2.0 release, and what the major changes are from the original InferenceMax to now moving to InferenceX?

Cam Quilici

Yeah, definitely. Originally, with InferenceMax 1.0, the goal was to benchmark a ton of different GPU SKUs on various production workloads. But for the last 3 months, we've mainly been benchmarking just single-node deployments of DeepSeek, GPT-OSS, and a few Llama 70B models.

In reality, big labs, neoclouds, and serverless providers are using more state-of-the-art techniques for inference, such as disaggregated prefill, wide expert parallelism, and speculative decoding. In order to have a more nuanced and robust benchmark, we wanted to include those.

Since the 1.0 release, I think that's been the primary focus: going at it and trying to add all the disagg, all the YDP benchmarks. The results really show a better picture of what frontier inference is like in production.

Jordan Nanos

Okay. Specifically, that means the DeepSeek-R1 model was added, right?

Cam Quilici

Right. DeepSeek was there in Version 1, but it was only single-node. Now it's multi-node. We're testing the entire NVLink domain, as well as multiple nodes of MI355X with their Pollara NICs. It's pretty cool.

Jordan Nanos

Yeah, and explain that as well, because there's a whole section on it. The first part is the models and the software configuration on the runtime to enable features like speculative decoding and prefill-decode disaggregation. But the second part is the hardware.

The first release did not include GB300, and it didn't include B300, either, which are both new GPUs from NVIDIA being included in 2.0. The major result, maybe, is showing how big an improvement GB200 or GB300 is actually bringing—not with the Grace CPU, but with the NVLink domain, right?

Cam Quilici

Right. Specifically with DeepSeek, you can run expert parallelism, which is effectively a form of parallelism for LLM inference. For DeepSeek, there are 256 experts, and you can basically allocate or disperse these experts across a bunch of different GPUs.

When you're doing this on one node, you're running EP8, so you have 256 divided by 8, or 32, experts on each GPU. When you're running that across, say, 8 nodes of B200, you're dispersing over 72 GPUs, but it's going over InfiniBand for scale-out because—

When you're running on GB200, you have an NVLink domain, and it's like 72 GPUs acting as one, as they say. Expert parallelism is just so fast, and we can go into those results later, but it's very clear how that frame-mogs all of the—

Jordan Nanos

Frame-mog it. Yeah, yeah.

2. Frontier GPUs Transform Inference

Let me actually go into the results right now, because I think this is probably the most key thing. For those watching, I've got the InferenceX Version 2 article on screen. This is the first major screenshot, and I think it's the biggest takeaway from these results: in a direct comparison of the max performance for DeepSeek that you can get out of an H100 with all the tunings and improvements that have come, compared directly with GB200 and GB300, at low interactivity levels—so, low speed per user—you get 20 times more throughput. In other words, you can support 20 times more users per GPU, or more requests per GPU.

At high interactivity levels, it's doing things that the H100 can't even do. So, 80 to 100 times more throughput per GPU at an interactivity level of 100 tokens per second, which, to be clear, we're seeing used today, right? There are models available, like Codex Spark from OpenAI, as well as—

Doug O'Laughlin

I thought Codex Spark, by the way, was—is it on Cerebras or no? I mean—

Jordan Nanos

Codex Spark is on Cerebras. We don't know exactly what Opus 4.6 Fast is being served on right now. We have our suspicions about Trainium and TPU because that's what Anthropic uses for inference compute.

Doug O'Laughlin

But they have GPUs too, so—

Jordan Nanos

Yeah. But the point is that those quote-unquote “fast models” are being served at interactivity levels above 100 tokens per second per user, from what we can see right now.

Doug O'Laughlin

Yeah.

Jordan Nanos

Whereas the standard models are more around 40. So, it's a real requirement for people who want to serve models at 100 tokens per second per user or per request. The fact that even at that level of interactivity, the GB200 or GB300 is showing 20 to 80 times more throughput is such an obvious statement that there have been incredible improvements generation over generation here.

Doug O'Laughlin

So—

Cam Quilici

Yeah.

Doug O'Laughlin

I'm sorry. To summarize: frame-mog, you know? Oh my God.

3. The Benchmark Keeps Improving

Other than the awesome work that the InferenceX team has done, I guess, since SemiAnalysis has a lot more people than just Dylan or me or even Jordan, I'd love to talk about the whole process of doing all this. I just don't feel like people appreciate the scale of what's happening and the tests that we're doing every single night.

I think Cam and Bryan can definitely offer a really cool insight into it. I'd like to hear what it's like making the spaghetti yourself, I guess.

Cam Quilici

Yeah. Bryan, I'll let you take that one, man.

Bryan Shan

Wait, did Jordan just disappear?

Cam Quilici

Oh.

Doug O'Laughlin

Yeah, Jordan will come back when he comes back. Don't worry about him.

Bryan Shan

Oh, sure. Yeah. So, actually, we work quite closely with AMD and NVIDIA engineers who help us find recipes for these kinds of setups. Optimizing such a task is not easy. There are many environmental variables, and there are many settings to tweak.

We work very closely with both companies to try and showcase their hardware to the best of its potential, basically.

Doug O'Laughlin

Mm-hmm.

Bryan Shan

Yeah.

Doug O'Laughlin

And I definitely think something that people accuse us of is favoritism. But more than anything else, we really just try to make sure this benchmark is a living, breathing benchmark.

Jordan Nanos

What's shown each night is effectively the best results, right? They work with us and put up numbers, right? These benchmarks have massively improved, partially because people at AMD and people at NVIDIA—both teams—have been working really hard on increasing throughput. I don't think there's favoritism; it's more that we just want to be the best benchmark and see the most token throughput.

Bryan Shan

Yes, exactly. And that's why we are currently trying to do day-zero support for some of the new Chinese models: Qwen 3.5, Minimax, Kimi 2.5. We really want to track how AMD and NVIDIA actually improve their implementations for these models over time.

Cam Quilici

Yeah, I think that's a good point. A lot of the benchmarks that currently exist are kind of just 1-point-in-time things, and not only 1 point in time, but 1 single point on the Pareto frontier, right? As Bryan said, we're really focused on trying to show that this is a very hard problem to solve, and a lot of people work very hard to improve it and push the frontier forward iteratively, week by week. So I think that's one of our North Star goals.

Doug O'Laughlin

What was before this, Cam? Because I know you have experience doing inference benchmarking before InferenceX came along. So when you're saying this runs nightly, what was it like before that? Leading question.

Cam Quilici

Yeah. In my previous experience, I think Bryan has some experience with other consortiums of inference benchmarks, too. I won't name names, but benchmark maxing is a word that comes to mind, right? It's important to understand, for those who don't have the background, that I'm going to share my screen real quick, if I can. Okay, cool.

The idea here is, if I look at GB200, this is an entire curve of different configurations that you can tune and serve at. I don't know if Claude Code wants a really fast mode, right? We can talk about this in more detail, but they have lower total system throughput while serving users at 140 tokens per second, right? So each user receives tokens very fast.

But if you want to make the most out of your system and have total system throughput that's very high, you're going to be over here or somewhere in the middle. Really, there's no one-size-fits-all solution, and I think other benchmarks for inference kind of assume that as a prior: We just want to maximize the total throughput and advertise that as a single number. The problem of inference is so much more nuanced than that, so I think that's the difference there.

Another difference is that, as you mentioned, we run nightly or weekly, at a cadence that keeps pace with what vLLM, SGLang, TensorRT-LLM—all of the serving runtimes—release, instead of every 6 months or every quarter, whatever. The release cadence is just constant.

Doug O'Laughlin

And that's the second chart in the article, showing the improvement in performance for ROCm on the DeepSeek model, right? It almost doubles in the span of, I think, 3 months or something.

Cam Quilici

Yeah. We can look at this right now, right? You're talking about MI355X multi-node here, right?

Doug O'Laughlin

Yeah.

Cam Quilici

You can see that one of the first public recipes AMD has ever released, to my knowledge, was from January 8th. The most recent one is from January 17th. You can see that they're continuously improving. The square is FP8 and the circle is FP4, but let's just show FP8 for now. You can see that the curve is being pushed forward multiple times in a span of 1 or 2 months, which is impressive in and of itself, because this goes to show that it's not just hardware improvements. Hardware is released every 2 years, maybe every year and a half.

Doug O'Laughlin

Yeah.

Cam Quilici

These are just engineering challenges, right?

Doug O'Laughlin

Re-share your screen here, I think, because it would help for the recording.

Cam Quilici

Oh, I'm not sharing?

Doug O'Laughlin

No, you were sharing, but it was frozen. I can bring it up on the other screen. There you go. Yeah, that's much better. For those viewing, or those just listening, basically Cam's got a graph from the InferenceX dashboard with 4 dates on it, January 8th through February 17th, and it shows an improvement from about 1,000 tokens per second of throughput per GPU at a 20-token-per-second interactivity level, all the way up to 3,000. So that's roughly triple the performance in 1 month through software-level optimization.

Cam Quilici

Yep.

Doug O'Laughlin

To go back to the original motivation for answering this question, when there's a benchmark that's tied to a specific interactivity level, only accepts submissions every 3 to 6 months, and does not get updated over time, you can't actually see these improvements for a long time. You can't see them 3 times within a month, and it's hard to give feedback or get feedback when you're doing development at that speed, let's say.

Cam Quilici

Yeah. And one more thing on this note of the difference is that we really enjoy our partnerships with AMD and NVIDIA on an engineering level, and we want to show them in the best light always, for both companies. But with other benchmarks, it's much more supplier- or company-centric, right? So if a company submits a benchmark and sees that they're losing to someone, they can unsubmit the results, right?

Here, we don't really allow that. We are an independent entity here. We're just performing the benchmarks with their help, so we're going to show the results no matter what. Once they're up, they're not going to be taken down, right? I think that's an element of transparency that we have over other existing benchmarks.

Doug O'Laughlin

Yeah. Awesome. How about that process of working together, right? There's been huge improvements in the software stack tied to the new hardware, right? Maybe you could walk through the improvements that you've seen, roughly 1 at a time, and how that comes to be.

Let's take prefill-decode disaggregation to start, right? If there's a framework that's developed, or a paper—really, a blog post—like DistServe that explains the theory of how to do this, it takes a while for that to actually show up in software that anybody can download and run. There's only a limited set of people in the world who have a GB200 NVL72 rack to test these optimizations on, right?

Cam Quilici

Right. Yeah.

Doug O'Laughlin

How do you go through that? How do you go through doing that testing and working with NVIDIA or AMD to get the latest software?

Cam Quilici

Yeah. Bryan, do you want to talk about this?

Bryan Shan

You can go ahead first.

Cam Quilici

I mean, the fact of the matter is that most of the inference-level optimizations being done are by those AMD and NVIDIA engineers, right? All credit to them where credit is due. The Dynamo team, the TensorRT-LLM team, and the AMD Distributed Inference team are amazing, and they are extremely smart—smarter than I am. They're making these kernel-level improvements every day, and I think this is where these iterative improvements come from, right?

They have their own testing clusters and their own testing environments. We try to help them understand their optimizations, but all credit to them in that regard, I think.

Bryan Shan

Yeah, especially in the early stages of recently released models, we also try to work with them to discover new flags, search for recipes online that other people have found, or test recipes that other people have published.

Cam Quilici

Yeah. Bryan knows this: it's kind of like a puzzle, because you have these engines—vLLM, SGLang, and TensorRT-LLM—that have just blown up in size over the last few years, right? Every time you add a new feature, maybe there's a new feature flag, like an environment variable that you set for a backend for an MoE model or whatever.

Now there are 1,000 different environment variables you can set, and finding the right combination of which to use for what deployment is really a challenge that requires a very deep understanding of all these different frameworks.

Bryan Shan

Yeah. Another issue is that some of these optimizations work by themselves, but when you combine them, the effect isn't really replicated.

Cam Quilici

Yeah.

Bryan Shan

It's not as simple as just combining good flags.

It’s about finding flags that work well in combination.

Jordan Nanos

Yeah, Bryan, I think you should talk more about the specific—

Bryan Shan

The AMD issue.

Jordan Nanos

…problem. Yeah, AMD’s composability issues.

Bryan Shan

Yeah. So that’s one issue that we discovered with AMD: They have many flags that work well, and they say work well by themselves. They say, “This flag will boost performance by this much.” But when we actually combine them, they don’t really work well together. I don’t remember the exact flags that do this, but that’s one big issue that AMD has, specifically.

Jordan Nanos

Yeah. At a high level, this can look like when you have FP8 inference, right? Plain, single-node FP8 inference is actually on par with that of the B200, its counterpart. But then when you go to FP4, FP4 inference is significantly worse than B200, and then when you add disaggregation and MTP, it’s significantly worse than even the last step—way worse than the last step, right? So it’s just that this composability of software is kind of an issue for AMD at the moment, but I think they can do better.

Doug O'Laughlin

Yeah. Can you talk about some of the analysis? We’ve talked a little bit about prefill-decode disaggregation and MTP. These are relatively complicated to understand because I think you need to understand a little bit about how a transformer model works to be able to understand the concept. But one that’s probably pretty simple is MTP, or multi-token prediction, here, and the chart that shows how much that can reduce cost is a pretty clear, obvious one—that horizontal bar chart that you made, Bryan. So maybe you’d be willing to walk through what sort of improvements MTP has brought and, just as an example of one of the optimizations that you could turn on, explain what MTP is.

Bryan Shan

Of course.

Doug O'Laughlin

Yeah, sure.

4. MTP Cuts Inference Costs

Bryan Shan

MTP is actually a recent type of speculative decoding. Previously, we used smaller draft models to produce these tokens, but DeepSeek has actually popularized this method of using MTP heads within the model that are pretrained along with the model for this multi-token prediction. Basically, these optimizations in general exploit this memory-bound issue with decoding. Because during decoding, you’re actually producing logits for previous tokens as well, not just for the next token, speculative decoding makes use of these logits to verify past tokens.

There’s actually no drop in evaluation performance, as our charts on GSM8K show. Basically, this is almost a free optimization in the sense that it provides a lot of performance gains at almost no cost to accuracy.

Jordan Nanos

Yeah. Just to be clear, GSM8K is a benchmark for grade-school math. It’s simple math questions, and you validate that the model can still perform on all those reference examples—it can still hit the reference level of performance on that evaluation.

Cam Quilici

Yep.

Jordan Nanos

One of the things that SemiAnalysis has spent a lot of time doing is showing the analysis beyond this, right? MTP makes things faster, but what does this actually mean for users? The result is clearly cheaper tokens. Either the provider can increase their margins because they can serve the tokens for cheaper at the same price, or they can pass those savings on to their customers, right?

Cam Quilici

Exactly.

Jordan Nanos

Yeah.

Doug O'Laughlin

Also, maybe a dumb question: How would we know how the realized cost differences are going to be seen? I’ve been wondering this. For example, is this just going to look like a better cache hit rate, or is this truly just going to be that they’re going to eat the margin and your end customer will never really see the difference? I would love to hear what you guys think. How do you think MTP will work in practice? And also, I guess the question is: Are these changes even in production today? Because it’s relatively new.

Cam Quilici

Yeah. MTP is specific to DeepSeek, and yes, it’s definitely in production. Other speculative decoding methods are also used in production. I mean, like Bryan said, it’s a bit more nuanced than this, but it’s basically a free optimization in terms of accuracy because of the way the probability distributions work. So, yeah, they’re definitely being used in production.

And then I really have no idea how the savings will be used, right? I’m not in finance; I don’t know the economics of this. But, as Jordan was just showing on his screen, it’s significantly cheaper in some scenarios, like by 50% or more. So I’m assuming some of those savings will make it to the end user, but I’m not entirely sure.

Jordan Nanos

Yeah. The chart that I was just showing on screen showed that the B300 with Dynamo and the TensorRT runtime was serving the DeepSeek model at 68 tokens per second per user, a reasonable speed, at a price of 25 cents per million tokens, which many people can compare to an existing price that they might spend on a model, right?

People will be familiar with a model that might cost $1 per million tokens or $15 per million tokens. Opus is at that level for the 4.6 model. It depends on your blend of input/output tokens, but we’re making an assumption here—I think a 3:1 input-to-output ratio—and we just price it that way for input and output, combined. And so when you turn MTP on, it goes from 25 cents per million tokens to 5.7 cents per million tokens—an 80% decrease in the example shown, right?

Cam Quilici

Right.

Jordan Nanos

And so you’re talking about a free optimization, for sure. But I think the key point to tease out about why it’s cool that InferenceX does this is that you can just see the results for both.

Cam Quilici

Right.

Jordan Nanos

You want to see it with MTP on, and you want to see it with MTP off. You want to see the Y-axis with throughput per GPU or cost per million tokens, or throughput per GPU per all-in utility megawatt, if you care about power. We have all of that analysis done based on our data in terms of how much servers cost, how much power costs, and things like that.

So maybe we can talk about more of the metrics or analysis that you guys did beyond just running it and seeing the output on throughput. It’s about actually drawing the conclusions of how much it’s going to cost people.

Cam Quilici

Yeah. I can share my screen, and Bryan and I can just talk about this. I can hear myself in the background. I’m not sure if that’s my fault or someone’s—

Jordan Nanos

My connection froze with what we’re using to record here.

Yeah. While Bryan is sharing his screen, I just want to say that DeepSeek has really popularized MTP, and basically everyone is using it now. The recent GLM-5, as well as Qwen3.5, also support MTP.

Cam Quilici

Yeah. So, okay. One example here of the metrics that a lot of people care about is obviously cost, right? So if I want to compare B200 to MI355 distributed inference, I’ll select MI355, and I’ll select B200, and we’ll compare SGLang to both so we’re apples to apples.

Here you can see in this scenario it’s pretty close: B200 and MI355 are, for all intents and purposes, equal in terms of total throughput. But our amazing analysts also have a TCO model where we count all the components that go into owning a GPU and calculate the cost per million tokens using that. Here you have all the TCO.

You can see it becomes clearer that at these more realistic interactivity levels, since MI355 is slightly cheaper than B200 by about 50 cents, MI355 is actually more economical by, I don’t know, 20 cents or so. It doesn’t seem like a lot, but when margins are pretty thin, that can make a big difference. And then—

Jordan Nanos

25% change, right? The first graph you had was just the raw performance, but it doesn’t consider how much the GPUs cost.

Cam Quilici

Right. Exactly.

Jordan Nanos

When you consider how much the GPUs cost, the performance per dollar is actually going to be better on the MI355.

Cam Quilici

Right.

Jordan Nanos

Yeah.

Doug O'Laughlin

Guys, why do we make all these changes? Am I crazy? This was not working a few days ago. Am I crazy as fuck?

Doug O'Laughlin

Yeah. We hired a great front-end engineer who’s been super locked in, so this is great.

Doug O'Laughlin

Yeah, I was going to say, man. I literally think when we did the InferenceX launch, none of this was here. Or it was like—

Cam Quilici

Yeah.

Doug O'Laughlin

…yeah.

5. InferenceX Builds Real World Benchmarks

Cam Quilici

I mean, another thing I want to mention is the next steps for InferenceX. Right now, you have these 8K/1K, 1K/1K, 1K/8K, and 8K/8K workloads, right? This would be just basic QA. This would be long decode, so maybe coding-agent output.

Jordan Nanos

Sorry, a little more explanation: 8K means 8,000 input tokens, and 1K means—

Cam Quilici

Right.

Jordan Nanos

1,000 output tokens, and—

Cam Quilici

Yeah.

Jordan Nanos

Vice versa for 1K/8K, and then 1K/1K being balanced.

Cam Quilici

Right. Right. Right. So, right now, InferenceX uses random data—random tokens—for these benchmarks. We're pre-filling between 80% and 100% of the input and decoding between 80% and 100% of the output, such that we have variable sequence lengths.

The point is, this is 8K random tokens, random words as input and 1K random tokens as output. That leads to a scenario where you don't have any prefix caching. For those of you who don't know what that means, when you're using ChatGPT and you ask something, then ask another question and another question, the whole conversation gets sent each time. But the prompts are being appended to some KV cache each time, so they don't have to be recomputed on each turn of the conversation.

When you're using random data, you don't get that because they're just single-turn conversations of random data. So, this data is a baseline because it's assuming no prefix caching and completely random data, so the speculative decoding distributions and acceptance rates won't be super high. In a way, that's good, because you can think of this current data as the worst it would be. Without any prefix caching or anything, this is the worst it would be. It would only get better from here.

Moving forward, we want to do more realistic benchmarks with real data, multi-turn data, prefix caching, SSD KV-cache offloading, and DRAM KV-cache offloading. This is just, frame-of-reference-wise, the best way to think about it: this is the worst result you can get from this GPU.

Jordan Nanos

Yeah. You guys have big plans.

Doug O'Laughlin

Big plans. Big plans coming soon. Honestly, it's pretty bullish in terms of inference margins. Effectively, if we're not seeing massive cost reductions in inference every month or so, margins should go up quite a bit. We're talking about multi-node, multi-turn, MTP, all this stuff. Assuming this is the worst case, the best case does seem like 50% price decreases.

I think that may be underappreciated because we've done quite a bit of work internally on the tokenomics stuff, specifically focused on how many tokens you do a month and where your break-even is on Max. In the beginning, we were like, “Yeah, these guys are losing money.” But all of these inference optimizations, specifically some of the ones you mentioned, make you think, “Wait, that actually means that Max might not be as unprofitable as you think.”

I don't think our first stabs at the estimates, Jordan, really encompass a full, all-in, high-cache-rate scenario, all that kind of stuff.

Jordan Nanos

Yeah. I mean, Cam is talking—there's a way in which this offsets. I agree with you. DeepSeek is likely a smaller model than what the frontier labs are running. In some cases, these guys are implementing some of the latest DeepEP and PD disaggregation optimizations pretty quickly after they're released, so it's not clear that that's running the whole fleet of all the models everywhere.

A lot of these benefits are applying to the latest and greatest GPUs, and we know that they're running big fleets of old GPUs, serving both inference and training still. You need optimizations on all this stuff, not just the GB300 NVL72, because that's not your entire inference fleet right now.

Doug O'Laughlin

So what Jordan is saying is, instead of adding TPUs and Trainium like people want us to, we should be adding A100s, you know? That's the real frontier that's going—

Jordan Nanos

Absolutely not what I'm saying. Yeah, yeah, yeah. We need to focus on the L40S for the next round, guys.

No, I think in some ways these things offset, right? You can think that InferenceX is always going to be a little lagging behind what the absolute frontier is in terms of model size and optimizations on the runtimes, because we're getting what's open source, not what's closed source. But on the other side, we're pushing to show the cost basis of the latest GPUs, which is really attractive.

I think the other thing I'd consider on InferenceX is how many improvements you guys have made since the launch. Doug, you commented on this a second ago, but it's both on the system side and on the datasets you were just talking about, Cam, as well as the models. Can you talk a little bit about the roadmap—new GPUs, new models, new benchmarks and datasets? We're just shipping even more from here, right?

Cam Quilici

Yeah. From a V3 standpoint, some of our big goals are to begin implementing Trainium and TPU, which is something a lot of people want to see. This is going to be awesome when we do it. I don't know if it's going to be by V3, but V3, V4—it's a long-term goal.

More immediately, though, as I just mentioned, we want to develop a state-of-the-art, real-world, multi-turn, long-prefix-cache benchmark and dataset that we can use to have the most real-world performance benchmark we can possibly curate. I think that's something to look forward to.

In terms of models, I'll let Bryan talk a bit about that. I think he's been doing some cool work.

Bryan Shan

Yeah. Of course, everyone's waiting for DeepSeek V4, so we are aiming for day-zero support. It's not just about the models; we're also looking at different inference optimizations.

One thing we know is that multimodal LLMs are quite important, especially with agentic work. Browser Use, Playwright—all of these require some sort of vision for the models. There's a new paradigm called EPD, or Encoder-Prefill-Decode, where we separate the encoder onto different nodes as well, like we do with prefill and decode.

We're also trying to bring this into V3, where we actually start to benchmark images as well, not just text, because of this importance in agentic workflows.

Jordan Nanos

Where are you going to get that data? All of Doug's Claude Code traces?

Cam Quilici

Yeah. We're going to ask Doug to make a tarball of 15 petabytes of Claude Code sessions and just send them over.

Doug O'Laughlin

Dude, at this point, I know OpenAI was like, “How are you guys using it for non-coding use cases?” They're going to lock me in a room and be like, “Generate data all day, dude. Make the fucking training data.”

Cam Quilici

You're like the infinite-monkey thing, bro. You're just making a monkey type Shakespeare.

But all jokes aside, this is actually a problem that we've been running into. We're like, “We want to make better benchmarks with multimodal data, multi-turn data, agentic coding, and so on.” I've been doing a lot of research on datasets for this, and they kind of don't exist because these are very valuable datasets for training and benchmarking.

I think we're going to have to make our own, actually. We'll see how it plays out. You can't find many online. The best one online right now is probably WildChat, and that's still about 3 years old. It's GPT-4o, with people asking GPT to be their therapist and stuff. I don't know, but we'll get there. They're very hard to come by.

Doug O'Laughlin

I have a really good query dataset if you want a benchmark. There's an old AOL query dataset from around when AOL was coming out in terms of search. I think it came from Yahoo! It's 500 randomized queries from 1999. That's my personal dataset I've been using whenever I do random, weird benchmarks, but it's not multi-turn. That's the real issue: the multi-turn.

My most consistent multi-turn, multimodal use case is probably, “This is broken. Here's a screenshot. Can you fix it?” That one is really hard to generate.

Cam Quilici

Yeah.

Doug O'Laughlin

Yeah.

Cam Quilici

Yeah. Something we've been talking about for agentic benchmark datasets is literally spinning up a bunch of the models—DeepSeek, whatever, frontier models—on these GPUs that we have, having a bunch of OpenCode instances, starting with an initial prompt, and telling them to simulate an environment where they would be coding. Then we could capture the traces from that.

Jordan Nanos

Yeah. What we're doing is not necessarily building a golden dataset that's going to be used for all benchmarks into the future, as if it's the future shared GPT or something. I think what we've talked about is the process by which we can gather data and use it in our benchmarks, because we're just going to trace—

Cam Quilici

Yeah.

Jordan Nanos

All the guys are doing Claude Code for the future, and then there’s going to be agentic stuff, and there’s going to be multimodal stuff. We just need a process internally to capture all that data and use it in our benchmarking, which is turning SemiAnalysis into the Data Lab. We’re going to be better, Doug, with your Excel benchmark, and—

Bryan Shan

Yeah.

Cam Quilici

Next, scale it up.

Jordan Nanos

I, I do want to do the Excel benchmark. We’ll have Ablos do the PowerPoint benchmark. I mean, the PowerPoint benchmark already feels saturated, unfortunately. And then Bryan had a really good little benchmark for the agent stuff.

6. Agentic Models Defy Simple Rankings

I would love to have this conversation because I know I saw Cam say this. We’ve been shit on on the internet because we’re Opus lovers, but how was your experience using 5.3, out of curiosity? I’ve just completely—

Cam Quilici

Me or Bryan?

Doug O'Laughlin

Cam or Bryan?

Cam Quilici

Yeah. Yesterday, Doug and I were talking about this. I had a problem where I was using FFmpeg, and Opus just couldn’t solve this issue. I was like, “Okay, fuck it. I’m using Codex 5.3.” I used it, and it did solve the problem. I don’t know if I was helping it, but I think Codex is better for targeted issues, and Opus is better for general vibes and creativity. I think that’s the general consensus.

That was the first time I used Codex, and immediately, within 15 minutes of using it, I was like, “Dude, this is better,” I think.

Doug O'Laughlin

Yeah, no, I definitely agree. I’m not a coder, is the problem, so it’s just not useful for me because I like the general vibes of 4.6 doing broad stuff and being like, “Hey, read this stupid report and summarize it for me,” and then also, you know, make it into a scraper or something like that.

But I just want to put it out there because I know Rune on Twitter keeps dragging us for 180-ing. No, Codex 5.3 is actually good. It’s also kind of weird because this is back to the agentic benchmarking stuff. We are maybe past the linear benchmarks, for lack of a better word, but there definitely continues to be this massively jagged frontier.

That’s a perfect example. How do we benchmark the fact that Codex is really, really, really good at doing a one-shot targeted ask, but it’s very bad at being like, “Make the whole project from scratch. Make no mistakes,” right? I have no idea. That’s becoming, I think, the most interesting problem to solve or understand: the agentic benchmarks, for lack of a better phrasing.

But we’re also like, yeah, I don’t know. It’s fucking wild. It’s been fun times, though.

Cam Quilici

I think the idea that having different models contribute to different tasks is a good thing, and we’re hopefully going to continue to motivate the people signing the checks to have a subscription to everything. Use everything, man. I have that—

Doug O'Laughlin

Are you saying—

Cam Quilici

—a multi-model evolution—

Doug O'Laughlin

—a multicloud future is possible?

Cam Quilici

It’s a multipolar world, Doug.

Doug O'Laughlin

Yeah. Multipolar.

Cam Quilici

I think you can tell Rune that we’re interested in updating our minds, or changing our minds, when new information presents itself, and we don’t like people who take the opposite approach. When new information is presented, we change our mind. What do you do?

Doug O'Laughlin

Yeah. We change our minds a lot. It’s actually kind of getting tiring. Every week seems to be different, dude.

Cam Quilici

What do you mean you change your mind every week? What are you talking about?

Doug O'Laughlin

Dude, I feel like I’m changing my mind. Time isn’t real, though, to be clear. I saw this tweet today where I was like, “Crazy, but you just actually rooflined agentic coding at 100% CPU for the human brain.” That’s how I feel, at least, in my code psychosis. Sorry.

Cam Quilici

Bryan, when was the last time you changed your mind?

I change my mind all the time, particularly on my general viewpoint of AI and its utility. Some days I’m like, “Dude, this is the stupidest thing ever. I just want to write code by hand and go back to 1985.” Then some days I’m like, “This just one-shotted my entire job.” I don’t know. What about you, Bryan?

Bryan Shan

Yeah, exactly. It’s like that graph of, “We are so back. AGI is here.” Then the second day it goes, “Oh, man, this thing sucks.”

Cam Quilici

Are you guys tired? One of my friends was telling me that he’s basically up all night coding now because he has these models. I don’t have that exact same vibe, but I am definitely tired from how much work I’ve been doing with AI now.

Doug O'Laughlin

That’s why I’m telling you: the agentic human, the human CPU, actually rooflines at 100%.

Cam Quilici

With the current capabilities of Opus and Codex, do you believe that you are the current bottleneck?

Dude, it’s a hard question because you’ll ask Opus to do a task in the Inference Max front end, and it’ll just completely shit itself. Then you reprompt it 100 times, and it’s like—

Doug O'Laughlin

Not quite there yet.

Cam Quilici

You know what? I’m not sure, because I think it’s a bit more nuanced. It’s weird. I feel like there’s some meta-level thing going on within the models. I have no idea. But if it goes down the wrong path, bro, it’s over.

Doug O'Laughlin

Yeah.

Cam Quilici

Like, hard—

Doug O'Laughlin

For most of the simple stuff I’m doing right now, I feel like I am the bottleneck, only because I can’t manage the 9 different tabs I’ve got open, trying to remind it to pull from main and merge the conflicts and stuff.

But the general feeling is that the model wants to code. Previously, the models wanted to learn. Now, man, the models want to code, and I just need to be able to prompt it. It’s always waiting for me to give it some feedback. Like—

Cam Quilici

Yeah. Yeah, I guess—

Bryan Shan

Yeah, exactly. The human brain can’t run in parallel, but we can run concurrently. I’m attending to this Claude, then the second I’m attending to Codex, et cetera.

Cam Quilici

Dude, you know what I was thinking? I was listening to the Dario Amodei episode of the Dwarkesh Podcast, and I was thinking about all of these podcasts I watch with these CEOs and engineers. The assumption is just like, okay, we’re assuming that these models are going to get better infinitely, forever and ever, and these harnesses are going to get better forever and ever.

I just had this fleeting thought: “Shit, man, what if that just isn’t the case? What if that’s not a good prior to have? What if they just stop getting better? Then what? Then what happens?” Then we’re fucked, man.

Doug O'Laughlin

Cam the bear. Cam’s the senior bear.

Cam Quilici

I’m trying to be balanced, bro.

Doug O'Laughlin

I think it’s good to always have your priors as, what is this, “strong beliefs, weakly held,” or something like that.

Cam Quilici

Yeah.

Doug O'Laughlin

Looking at the history of technological innovation, blah, blah, blah. When you get really screwed is when you’re like, “Actually, I’m going to throw away all my skepticism, and I’m just going to blindly believe in God,” effectively. Then every—what happens is there are no incremental believers, and then it’s over.

I do think the models will get better. I have to ask myself, though: What if the models didn’t improve at the rate they’ve been improving? What if it really chills out? Do you think it’s enough to change our lives forever? That’s my question, and I think yes.

Cam Quilici

Yeah, I’d say probably. The genie is out of the bottle.

Just to wrap this up, InferenceMAX shows you that maybe models aren’t getting smarter, although we do have evaluations, but they are getting cheaper. Even if they never got any smarter from today, diffusion would be much more widespread because they’re getting cheaper, faster, and more performant. So, if you want to take a deep dive into all this stuff, everyone listening should check out the new Inference Max article and also go to the site, play around—it’s all free, with beautiful visualizations. If you have recommendations, go to the GitHub, go to the issues, and make an issue recommendation. But check it out for yourself. It’s super cool.

Doug O'Laughlin

Yes. Appreciate it. Thanks, guys, for coming on. Nice job, Cam.

Cam Quilici

Yeah. All right. See you guys.