摘要: 本文是CUDA矩阵乘法系列文章的下篇,主要介绍了4种CUDA矩阵乘法内核的实现及其优化来源,并以一个内核为例详细展示了编写复杂矩阵乘法内核的方法和技巧。最终本文展示了一种达到cuBlas性能87%的实现。 阅读全文
posted @ 2025-12-08 16:31 QZero 阅读(48) 评论(0) 推荐(0)
摘要: 本文主要记录了使用Nsight Compute排查CUDA矩阵乘法性能瓶颈的过程。 本文首先简单介绍了Nsight Compute这一工具,然后使用一个实际案例演示了如何使用该工具精确排查是哪一行代码造成的Bank Conflict,并展示了该问题解决后的结果 阅读全文
posted @ 2025-11-14 16:15 QZero 阅读(179) 评论(0) 推荐(1)
摘要: 本文是CUDA矩阵乘法系列文章的上篇。这个系列会从一个最简单的实现出发,逐步优化到cuBLAS标准库86%的性能,并详细介绍其中涉及到的CUDA性能优化技巧。 本文首先给出了一个开箱即用的实验源代码,然后介绍了GPU硬件知识以及3种简单实现,逐步展示了把性能从cuBLAS的0.39%优化到16%,即性能提升40倍的“魔法”。 阅读全文
posted @ 2025-11-01 19:49 QZero 阅读(295) 评论(0) 推荐(0)
摘要: 本文为CUDA并行规约系列文章的下篇,本文介绍了5种并行规约算法的实现,并从硬件的角度对它们进行分析和优化,最终给出一个开箱即用的模板代码及其使用示例。 阅读全文
posted @ 2025-09-28 18:28 QZero 阅读(232) 评论(0) 推荐(0)
摘要: 本文为CUDA并行规约系列文章的上篇,本系列将会介绍CUDA编程的一些基础软硬件知识,然后给出7种规约算法的实现,并从硬件的角度对它们进行分析和优化,最终给出一个开箱即用的模板代码。 本文主要介绍了CUDA编程的基础软硬件知识,并给出了2种规约算法的实现和分析。 阅读全文
posted @ 2025-09-26 18:26 QZero 阅读(255) 评论(0) 推荐(0)
摘要: 本文紧接系列的上篇,介绍了 transpose,summation,broadcast_to 等更为复杂的深度学习算子的反向传播公式推导。 阅读全文
posted @ 2025-09-12 14:32 QZero 阅读(152) 评论(0) 推荐(0)
摘要: 本文为常用算子反向传播公式的上篇,介绍了适用于任意张量函数的链式法则公式,使用该公式可以求出诸如reshape,broadcast_to这类会改变张量维度数量的算子的反向传播公式。本文同时给出了求常见算子反向传播公式的通用方法,并以几个简单的算子为例进行了演示。 本系列文章的下篇将用本文提到的公式求解reshape,transpose等更复杂的算子的反向传播公式。 阅读全文
posted @ 2025-09-11 20:29 QZero 阅读(161) 评论(0) 推荐(1)
摘要: 本文总结了矩阵导数的本质定义,对矩阵求导链式法则公式进行了讨论,并使用矩阵求导链式法则公式推导了矩阵乘法的反向传播公式。 阅读全文
posted @ 2025-09-10 21:07 QZero 阅读(314) 评论(2) 推荐(1)
摘要: 本文记录了在mac下使用1.8.0版本的libnfc时写卡失败的问题,并给出了使用1.7.1版本libnfc的解决方案。本文同时在文末记录了使用libnfc对NFC卡片进行复制和编辑的操作步骤。 阅读全文
posted @ 2025-09-07 22:48 QZero 阅读(118) 评论(0) 推荐(0)
摘要: 本文记录了在使用 springcloud gateway 的场景下,后端流式输出异常的情况,具体表现为大模型返回并没有流式输出,而是一次性全部返回;并且经过测试,直接对业务服务进行请求能够成功进行流式输出。 最终发现,是业务服务返回的 Content-Type 错误导致 gateway 没有按照流式输出返回给前端,只需要修改接口的 Content-Type 即可解决问题。 修改接口 Content-Type 之后,spring web 框架会按照 SSE 标准返回,此时需要前端使用 eventsource-parser 这个开源库对返回的数据进行解析。 阅读全文
posted @ 2025-08-29 18:55 QZero 阅读(346) 评论(0) 推荐(0)