摘要: 最近在学习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 阅读(2842) 评论(0) 推荐(2) 编辑
摘要: 以数智重庆.全球产业赋能创新大赛 为例,目标检测的几种常见的做题技巧如下: 针对数据集进行数据提升 a. 需要对数据进行了解,比如有哪些分类,a56爆大奖在线娱乐分类下各有什么特点,a56爆大奖在线娱乐分类下的图片尺寸是怎样的,分布是怎样的(长尾分布,类别不均衡)。 b. 数据出现了什么样的问题,应该怎么去解决这些问题。(多样性, 阅读全文
posted @ 2021-05-23 14:01 wildkid1024 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 统一内存管理简介 最近和一个朋友聊到了统一内存管理的话题,统一内存是cuda中的一个很重要的概念,通过统一内存管理,用户可以直接使用内存,而不用在意数据在内存中位置,做到透明管理。 统—内存编程模型由CUDA6引入,从开普勒架构开始就可用,但开普勒架构和麦克斯韦架构的GPU提供的统一内存编程功能相对 阅读全文
posted @ 2024-06-29 12:52 wildkid1024 阅读(3) 评论(0) 推荐(0) 编辑
摘要: LLM后量化(PTQ)总结及原理实现 weight only per_channel:按照a56爆大奖在线娱乐channel的方式,计算得到scale和zero参数,通过weight = weight * scale + zero的方式进行还原。 per_channel_group_wise:按照a56爆大奖在线娱乐channel 阅读全文
posted @ 2024-06-29 12:50 wildkid1024 阅读(6) 评论(0) 推荐(0) 编辑
摘要: TRT-LLM部署流程 1. 编译trt-cpp文件 cd TensorRT-LLM/cpp/build export TRT_LIB_DIR=/usr/local/tensorrt export TRT_INCLUDE_DIR=/usr/local/tensorrt/include/ cmake 阅读全文
posted @ 2024-06-29 12:49 wildkid1024 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 生产者消费者模式下实现多batch延时推理 需求分析 在实际推理过程中为了实现较高的吞吐量和较高的资源利用率,往往会使用多线程来收集多次请求,并组合形成多batch下的模型推理,a56爆大奖在线娱乐常见的实现便是生产者和消费者模式,其需求如下: 生产者收集提交的请求,消费者对请求进行消费,并将结果返回。 资源是有限 阅读全文
posted @ 2023-10-30 17:57 wildkid1024 阅读(35) 评论(0) 推荐(0) 编辑
摘要: LLM采样后处理总结:LLM的后处理的cpp实现 在经过LLM的lm_head之后,会得到[batch, vocab_size]大小的矩阵向量,此时需要对输出的逻辑张量进行采样,除了beam_search的贪心策略,还有repetition_penalty、temperature、top_k、top 阅读全文
posted @ 2023-10-11 18:09 wildkid1024 阅读(297) 评论(0) 推荐(0) 编辑
摘要: ControlNet-trt优化总结4:onnx图修改与重建 在这一节中,主要总结网络层面的优化,针对于算子插件优化,主要聚焦于以下几点: 修改onnx图,添加不支持的算子插件 增加前后处理部分,前后处理导出为onnx图 onnx图surgeon 原有的graph中存在大量的GN操作,正常fp32的 阅读全文
posted @ 2023-10-09 14:19 wildkid1024 阅读(244) 评论(0) 推荐(0) 编辑
摘要: ControlNet-trt优化总结3:使用multi-stream和cuda-graph构建并行流水线 上节谈到使用TRT-API来构建网络,在这一节中总结一些trick来提升模型的运行效率,这些trick在所有的trt优化中均可使用,主要有以下几点: 使用cuda_graph减少kernel间的 阅读全文
posted @ 2023-10-08 16:16 wildkid1024 阅读(442) 评论(0) 推荐(0) 编辑
摘要: ControlNet-trt优化总结2:使用TRT-API从零构建ControlNet网络 在上节讲到,可以通过手动搭建trt网络的方式来重新构造controlnet网络,这样可以避免onnx中间转换过程中的精度损失,也可避免onnx中间转化时的算子被拆解的细碎的情况,对于不支持的算子,也可通过添加 阅读全文
posted @ 2023-10-07 17:30 wildkid1024 阅读(234) 评论(0) 推荐(0) 编辑
摘要: vllm kernels分析 接着上一节的架构分析,vllm的csrc目录下有一些手动实现的核函数,在上一节没有具体分析,这节详细来看看。 文件结构 csrc/activation_kernels:对应的silu和gelu激活函数 csrc/attention: 存放的是sq_kv_attentio 阅读全文
posted @ 2023-09-19 11:27 wildkid1024 阅读(230) 评论(0) 推荐(0) 编辑
摘要: # vllm架构分析 ## 文件目录结构 benchmark: 测试延迟和吞吐的脚本 csrc: torch下的cuda扩展,一些关键kernels的cpp源码,包含了attention、激活函数、cache等核函数 vllm/core: 关键调度算法,调度策略以及维护cpu和gpu映射的关系表 v 阅读全文
posted @ 2023-09-06 15:42 wildkid1024 阅读(1028) 评论(0) 推荐(0) 编辑