算法岗平时需要自己写cuda吗?
共 4221字,需浏览 9分钟
·
2024-08-02 11:56
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
https://www.zhihu.com/question/436008648/answer/1683251210
95%的算法岗都不需要。
真实的故事:我同事,再来英伟达前申请的G社,二轮电话面试被刷。原因是不能熟练的撸一个b树被刷。该同事的背景是当时德国某校Assistant Professor,出版两本CUDA和并行编程书,可以熟练撸PTX。当时人家还跟G社争吵说可以提供性能相当的二叉树CUDA实现,被拒绝并说不需要。
我只能说,前世界上95%的算法和码农岗位都不需要你能够GPU编程,刷好题比这些都重要。
当然了,前一阵G社回来反挖失败那就是另一回事了。
评论圈有人说既然选了G社,就应该知道需要刷题,这属于准备不善。确实,我同事后来也是这么说的,当时根本就没有准备刷题,因为本身也没准备去做码农,抱着试试看的心理去了。
至于这类数据结构和算法轮子,大家千万不要认为用不到刷的题属于无用功。其实即便是用pytorch写炼丹算法还是要注意这些的。比如什么情况会造成新分配内存啊,何时内存会被copy啊,等等。轮子的基础越深,最后的车的舒适度,性能也越好,这是肯定的。
https://www.zhihu.com/question/436008648/answer/1746022828
默认cv岗哈!
比如,现在要优化模型推理性能,剪枝,蒸馏,量化一大通操作下来,模型纯推理时间由30ms降到15ms,性能翻倍,感觉不错,但是一看数据预处理,耗时10ms,模型后处理耗时15ms,算下来处理数据花的时间比我模型推理花的时间还要长。这时候,cuda大神就可以上场了,我们把预处理和后处理搬到cuda上,一测,预处理,后处理共5ms就搞定了。这时候,报告一写,模型推理时间55ms降低到20ms,领导看后一顿夸,心里美滋滋,升职加薪不是梦。
再比如,最近模型指标一直上不去,看着三年前的老模型,一脸嫌弃,感觉是时候拥抱新模型了。然后各种顶会,博客看下来,找到了个三个月前刚发表的新论文,华丽的辞藻,sota的指标让你按捺不住,想赶快把它用在自己的工程中,结果github上没找到开源代码。这时候,cuda大神又可以上场了,熬几个通宵,把论文中跳动的字符转换成cuda实现的美丽算子,然后模型一训,数据一测,指标提了3个点,老板看后又一顿夸,心里又美滋滋,升职加薪又不是梦。
cuda的作用很多,水也很深,一般做cv方向手撸cuda的机会还真不多,但是真的用上的时候,大概率是用来解决重大问题的时候。多了解了解,用的6确实可以算是自己很大的加分项。
https://www.zhihu.com/question/436008648/answer/1649590705
先放结论:基本上不需要,但是是很好的加分项!
https://www.zhihu.com/question/436008648/answer/1707546242
看业务方向,比如我主要负责模型开发和模型部署,前者主要是python后者是C++和cuda。
我们组也有只写python训练模型研究模型改进模型搭建服务的,加速任务交给其他人或者我来搞。
如果只是模型开发的话,我们一般都是使用框架,例如pytorch。大概率不需要自己写cuda,只要能够看懂一些cuda代码并且能够以正确姿势白嫖其他人造好的cuda轮子即可。因为大部分的op都有cuda版本,例如dcn,你训练模型可以直接白嫖用。
但是如果涉及到了部署和模型加速或者模型要上服务器,只要你的模型需要快速运行在GPU上。就需要自己写一些加速的cuda代码,前处理或者后处理或者模型中某个op,也是类似dcn这样的自定义op。例如TensorRT或者triton-server,需要自己写一些自定义插件,用cuda和c++写,目的就是为了加速。
就算业务上没有使用cuda的地方,也可以学学cuda并行语言的思想。并行思想和普通的串行差距还是蛮大,有一定的代沟,需要时间过渡。
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~