七月总结&八月计划
作者:互联网
七月总结
1. 主要任务
-
《CUDA编程-基础与实践》
目标: 看完+同步coding练习
进展: 月中旬已看完这本书,讲的很详细,知识点也是循序展开的,很适合入门。
总结:
1 : 整本书以ReduceSum 核函数的编写展开,不断进行优化,能够了解到欠佳策略如何优化,从原因入手,对理解很有帮助。这本书其实是一本学习笔记整理而来的,虽然要50¥,但也花的值了,目前对CUDA的整体认识更进了一步,相关代码也手敲了一遍(前面几章节的代码),也明白了推理库中的算子和kernel函数是如何配合构建的,但目前对推理框架如onnxruntime的其他模块还不是很了解,只知道局部而不知道整体。
2 : 同时我也搜索了相关的推理库学习,想找一个简洁一点的,但很多都集成了太多功能,相关教程也少的可怜,很多博客都是对官方教程执行一遍记录的,对推理库架构的讲解几乎没有。目前涉及深度学习的很多厂家都开源了自己的推理框架,移动端部署的较多,如MNN、TNN、NCNN等,此外云端移动端通用的也有很多,如商汤的OpenPPL、矿旷视MegEngine、微软onnxruntime、寒武纪magicMind、百度PaddlePaddle、Nvidia TensorRT、华为也有个开源的在gitee上。其中有些也是能进行模型训练的,但相比于pytorch,相关接口调用就没那么方便了,或者接口和pytorch很相似,但学术界还是开源以pytorch为主。所以通常部署流程还是pytorch->onnx,然后用onnx直接推理(如onnxruntime)或者进一步使用不同推理库提供的converter工具再转一下,转为目标推理库要求的格式再去部署。推理库本身也包含了很多模块,会对网络图进行优化和切分,自动调度不同后端实现算子完成节点计算,其中也涉及到对内存或显存的操作,以及在上述这本书中学到的计算并行设计和异步调用、以及如何流同步、内存申请和copy等等。
3 : 此外,推理库只是提供了深度学习模型如何方便地在不同平台上执行推理计算的接口,而我们最终要实现的一个能处理传入图像的服务。这个服务在云端或移动端部署后,相关客户端或者应用程序调用服务接口来获取相应的推理结果。为保证响应时间,服务的框架底层是用C++来写,并且设置多路线程执行,能最大程度利用计算资源以保证负载最大化,服务框架上层用一些较易维护的jave或者go等来实现,这样的分层设计也使得研发部门和业务部门对接容易,服务部署框架由业务部门维护,而底层用C++实现的推理SDK由研发部门提供给业务部门,只要SDK接口定义沟通好就可以了。目前我的工作往上是到完成SDK开发为止,向下的话涉及到很多琐碎的东西,也有很多我还不了解但需要学习的东西,不再一一细说。关于这个SDK框架应该如何构建,我现在也只是对公司内部的SDK了解,但类似的开源代码却没找到,很想能找到一个开源的这类项目好好研究一下。目前我找到的mmdeploy是提供了SDK,但它又是要和mmlab的那一套训练框架配合使用的,SDK运行的配置和训练框架的配置类似,很繁琐,目前还在研究这个代码,看能不能提炼出SDK来,后端用onnxruntime在cpu上推理试试。
反思: 目前我的工作内容还不够深入,只徘徊在pytorch导出onnx,然后量化对齐部署到SDK中,完成预处理后处理等模块开发,最终完成效果效率稳定性自测并提供出去。这部分内容也不是不重要,但算法落地的工作不能仅限于此,只有更加深入底层进行优化设计才能具有不可替代性,所以推理库是需要好好学学的。 -
力扣简单题60道
进展: 完成。今天,七月最后一天完成的。
总结: 60道简单题先找找刷题的感觉,这些题目使用Python写的,主要涉及到一些字符串匹配、链表、二叉树等的简单操作计算,但其中也有很多题目解法巧妙,没刷过还真不一定能想得到。
2. 其他任务
- 无。
3. 月度小结
七月份工作上的内容比较简单,效率优化有了之前的经验也做得得心应手,工作量也不大。学习上开启了刷题模式,60道简单题练练手,下个月继续。
八月计划
1. 主要任务
- 算法刷题
目标: 一门算法刷题网课+30道力扣中等难度题目
Deadline: 2022.8.30 - 开源推理SDK编写
目标: 这个月安排一个开源项目编写吧,仓库好早之前就已经建好了,但代码一直没写。目前还没有看到比较好的开源可参考SDK,要是实在找不到就从头开始写。先简单点写,实现多路调用onnxruntime推理库接口完成图像分类任务。后续有时间再加目标检测或分割模块,问题是目前云服务器只是一个两核4g的玩具,不知道够不够用。
Deadline: 2022.8.30
2. 其他任务
- 无其他任务,少打游戏,有空多锻炼身体吧。
标签:总结,七月,框架,onnxruntime,八月,pytorch,开源,推理,SDK 来源: https://www.cnblogs.com/lee-zq/p/16538607.html