摘要: 最近在学习CUDA编程,将最近看到的一些资源进行汇总。 书籍和文档 英伟达CUDA C编程入门 NVIDIA CUDA C Programming Guide https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html 官方的文档 阅读全文
posted @ 2021-06-10 16:37 wildkid1024 阅读(2659) 评论(0) 推荐(2) 编辑
摘要: 以数智重庆.全球产业赋能创新大赛 为例,目标检测的几种常见的做题技巧如下: 针对数据集进行数据提升 a. 需要对数据进行了解,比如有哪些分类,每个分类下各有什么特点,每个分类下的图片尺寸是怎样的,分布是怎样的(长尾分布,类别不均衡)。 b. 数据出现了什么样的问题,应该怎么去解决这些问题。(多样性, 阅读全文
posted @ 2021-05-23 14:01 wildkid1024 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 生产者消费者模式下实现多batch延时推理 需求分析 在实际推理过程中为了实现较高的吞吐量和较高的资源利用率,往往会使用多线程来收集多次请求,并组合形成多batch下的模型推理,一种常见的实现便是生产者和消费者模式,其需求如下: 生产者收集提交的请求,消费者对请求进行消费,并将结果返回。 资源是有限 阅读全文
posted @ 2023-10-30 17:57 wildkid1024 阅读(30) 评论(0) 推荐(0) 编辑
摘要: LLM采样后处理总结:LLM的后处理的cpp实现 在经过LLM的lm_head之后,会得到[batch, vocab_size]大小的矩阵向量,此时需要对输出的逻辑张量进行采样,除了beam_search的贪心策略,还有repetition_penalty、temperature、top_k、top 阅读全文
posted @ 2023-10-11 18:10 wildkid1024 阅读(223) 评论(0) 推荐(0) 编辑
摘要: ControlNet-trt优化总结4:onnx图修改与重建 在这一节中,主要总结网络层面的优化,针对于算子插件优化,主要聚焦于以下几点: 修改onnx图,添加不支持的算子插件 增加前后处理部分,前后处理导出为onnx图 onnx图surgeon 原有的graph中存在大量的GN操作,正常fp32的 阅读全文
posted @ 2023-10-09 14:20 wildkid1024 阅读(187) 评论(0) 推荐(0) 编辑
摘要: ControlNet-trt优化总结3:使用multi-stream和cuda-graph构建并行流水线 上节谈到使用TRT-API来构建网络,在这一节中总结一些trick来提升模型的运行效率,这些trick在所有的trt优化中均可使用,主要有以下几点: 使用cuda_graph减少kernel间的 阅读全文
posted @ 2023-10-08 16:17 wildkid1024 阅读(292) 评论(0) 推荐(0) 编辑
摘要: ControlNet-trt优化总结2:使用TRT-API从零构建ControlNet网络 在上节讲到,可以通过手动搭建trt网络的方式来重新构造controlnet网络,这样可以避免onnx中间转换过程中的精度损失,也可避免onnx中间转化时的算子被拆解的细碎的情况,对于不支持的算子,也可通过添加 阅读全文
posted @ 2023-10-07 17:31 wildkid1024 阅读(182) 评论(0) 推荐(0) 编辑
摘要: vllm kernels分析 接着上一节的架构分析,vllm的csrc目录下有一些手动实现的核函数,在上一节没有具体分析,这节详细来看看。 文件结构 csrc/activation_kernels:对应的silu和gelu激活函数 csrc/attention: 存放的是sq_kv_attentio 阅读全文
posted @ 2023-09-19 11:27 wildkid1024 阅读(181) 评论(0) 推荐(0) 编辑
摘要: # vllm架构分析 ## 文件目录结构 benchmark: 测试延迟和吞吐的脚本 csrc: torch下的cuda扩展,一些关键kernels的cpp源码,包含了attention、激活函数、cache等核函数 vllm/core: 关键调度算法,调度策略以及维护cpu和gpu映射的关系表 v 阅读全文
posted @ 2023-09-06 15:43 wildkid1024 阅读(826) 评论(0) 推荐(0) 编辑
摘要: # trt-hackthon2023 ControlNet-trt优化总结 ## 题目简介 本届赛题是模型优化赛,和上届的hackthon一样,也是借助于TensorRT工具,实现对深度模型的加速,本届赛题要优化的模型为controlNet,即为类SD的图像生成模型。 比赛地址: https://t 阅读全文
posted @ 2023-08-31 00:49 wildkid1024 阅读(248) 评论(0) 推荐(0) 编辑
摘要: # [fastllm]多线程下动态组batch实现解析 ## 需求分析 新版本的fastllm中添加了ForwardBatch的功能,用于处理批量推理请求,单次推理请求会被视为batch为1的批量请求,这样做似乎没什么问题。 然而在具体实践中,用户的请求往往是一个一个来的,每来一个请求都要等上一个请 阅读全文
posted @ 2023-08-26 15:19 wildkid1024 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 接着前面第一篇架构的分析,这篇文章主要分析fastllm中使用cuda-kernels的写法,在fastllm中主要有以下几种使用频率较高的kernel:gemv_int4, gemv_int8, gemm_int8, RMSNorm, softmax,RotatePosition2D,swiglu 阅读全文
posted @ 2023-08-23 19:34 wildkid1024 阅读(81) 评论(0) 推荐(0) 编辑