-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
高通8Gen3设备上使用QNN的HTP加速效果不理想 #239
Comments
很抱歉2025年2月初才认真回答您的这个issue。为了技术交流方便,我将用中文回答您的问题。
2025年1月28号因为春节前DeepSeek-R1火爆全世界的缘故,又开始致力于完善ggml-qnn(这玩意就像骑自行车,一旦会了后就不会忘记,捡起来很快),请参考这个帖子:#246。 得益于上游llama.cpp的软件架构有了巨大改进,已经在2月初花了几天时间改进2024年4月到5月份的原有代码并提交了一个改进版ggml-qnn后端实现到这个工程(看到开源社区有人也在做ggml-qnn的工作,其C++代码写的比较炫,封装的比较多比较绕,可能导致对llama.cpp源代码与QNN SDK不太熟悉的程序员看的比较晕,那个来源于此项目的实现本质上与当前简洁明了且只有一个源文件一目了然便于移植与扩展的实现一样)。如果哪天发现在上游llama.cpp社区被解封后,会提交PR到上游llama.cpp社区。 从代码角度分析,在高通手机上使用ggml-qnn后端做llama.cpp推理时,由于几个可以想到的原因,
其性能低于llama.cpp高度优化的cpu后端的推理性能。 为了便于您更好得理解上面的解释,下面贴出2024年4月5号在一位热心高通工程师在github上的指点/帮助下取得决定性进展得源代码文件(可以说ggml-qnn的秘诀就在这个文件里,理解了这个,理解了以上3个链接,再加上理解了llama.cpp的源代码(主要是其中的数据结构与backend子系统),还有熟悉AI算子开发,ggml-qnn剩下的都是一些c/c++编程的routine work):
我不是AI技术领域的专家(但非常看好我国的90后尤其00后程序员与AI专家尤其是DeepSeek公司的众多AI专家,如果没有DeepSeek-R1在春节前后震惊世界的杰出表现,也大概率不会再回到github,进而也没有这个回答),以上推测仅仅是根据公开技术文档与公开代码学习后的个人看法,理解不当之处请您指正。 最后,借用这个帖子,表达一个个人看法:llama.cpp这个来自欧洲天才程序员的个人项目,逐渐成为github上最有影响力之一的开源端侧推理框架,而且滋润了包括个人开源项目在内的无数下游开源项目或商业公司商业项目或高校研究机构研究项目,为什没有商业化:去年我曾建议作者在中国开一个llama.cpp官方技术微信公众号定期收取打赏年入百万应该问题不大,因为我看到公众号上一个写篇篇10万+财经文章的号主每年仅仅收取12次费用每次打赏人数过数万甚至过十万,个人对这个在文章中宣称年入几百万不差钱的号主每年打赏12元,迄今累计公众号打赏可能接近万元-------有时候看到思考深刻独到或令人拍案叫绝的好文章忍不住打赏几十几百。llama.cpp这个开源项目需要的高性能开发机器与优秀程序员的开发成本,仅仅是由github上的赞助者的赞助覆盖的吗?不得不说,开源文化在美国/欧洲的确有它的土壤,在14亿人的我国如果还很年轻或者不是公司许可的最好不要做开源项目---相当费时费力---将本职工作做好即可。 如果您认为这个回答能解答您的问题,请帮助关闭掉这个issue,谢谢您的合作。 |
您好,由于这个issue长时间没有关闭,且本项目的ggml-qnn相关工作已经由kantv-ai团队成员于2025年2月13号提交到上游社区,您有相关问题可以去上游社区提问,上游社区里有很多AI专家,他们或许能给出更加好的意见。 如果未来您还有需要,请重新打开此issue,谢谢理解。 |
您好,
大佬,借贵宝地,请问一下,为什么我在高通8Gen3设备上使用QNN的HTP加速,感觉效果很差,没有达到加速效果呢?
设置了QnnHtpPerfInfrastructure_PowerConfig_t如下:
The text was updated successfully, but these errors were encountered: