mlc-llm Prefill rate degradation between old mlc llm stack and new mlc llm stack via Windows Vulkan

50pmv0ei  于 2个月前  发布在  Windows
关注(0)|答案(2)|浏览(44)

旧的mlc llm版本基于过时的堆栈:命令仍然使用mlc_chat_cli,.dll文件基于预构建的vulkan.dll。
另一方面,新的mlc llm版本基于最新的堆栈:命令使用mlc_llm,.dll文件使用mlc_llm编译生成。
在Windows 11笔记本电脑(vulkan)上进行测试
测试提示大小:约1k
llama2-7b(旧版本):预填充约160个token/s,解码7.5个token/s
llama2-7b(最新版本):预填充约80个token/s,解码:13.3个token/s
所以解码速度有所提高,但为什么预填充速度降低了呢?
MLC LLM在分词器模块上有什么重大变化吗?或者编译过程有所不同?
谢谢

xxhby3vn

xxhby3vn1#

这个问题是从Windows构建中观察到的,延迟功能来自TVMSynchronize()。不知何故,在预填充步骤中调用TVMSynchronize()时,处理此函数的时间比解码阶段调用要慢得多。

66bbxpm5

66bbxpm52#

实际上,使用之前的旧预构建Vulkan DLL性能与从源代码自行构建是不同的。我们是否知道在2023年7月/8月左右使用的哪个仓库日期来创建之前的预构建Vulkan DLL?我测试了2023年7月29日的仓库,生成的dll填充率仍然比使用旧预构建库更差。

相关问题