编辑 | 汽车人
原文链接:https://www.zhihu.com/question/564812763
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【模型部署】技术交流群
作者:张心欣
链接:https://www.zhihu.com/question/564812763/answer/2764785431
事实上不仅仅是cuda
英伟达从cuda里学到的最重要的一课,就是软硬件捆绑。
计算界cuda之所以厉害,不仅仅是因为它可以调用GPU计算,
而是它可以调用GPU硬件加速。
GPU计算 ≠ GPU硬件加速。
这个道理或许很多人不知道。
比如同样一个三线性插值,你在一个gpu数组上手写实现的版本,和当你把它转换为一种纹理内存textureObject后用cuda内置的textureSample函数来做,效率可能差好多倍。
因为后者的三线性插值,你可以理解为是“电路板在做”。
包括tensorCore为什么快,因为人家又把tensor计算做成“电路板计算”了。
那难道你们以为除了科学计算,除了cuda,英伟达就不能打了?
光线追踪,光线和三角形求交,英伟达做成“电路板计算”了,你觉得自己用cuda手写的算法能比电路快?
而这样的功能,只有Optix可以支持和享受到,或者是使用了N卡的extension才能有,也就是说a卡即使你用vulkan/OpenGL手写了个光追,你也不可能比人家快。
4090里,英伟达又把光线排序,做成硬件加速的了,而这一切只有使用他家原生的API系统才可以享受到。
physX也是,N卡限定。甚至于说,如果需求量够大,英伟达把三维体积的有限差分操作,有限元的检测函数积分操作,全做成“电路板计算”也不是不可以。同时配合着自己的软件体系一起往外推。
发现需求量大的“单元计算”任务,(比如三线性插值,tensorcore,三角形求交,光线排序…)把他们做成“电路实现”,并用自己的api裹挟这样的计算能力。
这才是英伟达真正的组合拳。在这套组合拳体系下,cuda扮演着胶水级核心航母的角色。还有其它护卫舰,而这些护卫舰都绕不开。
作者:王沁之
链接:https://www.zhihu.com/question/564812763/answer/2783418554
提供一个非常粗糙的理论,理工科的高中毕业生选择专业之前可以考虑一下有没有道理。
一个生产端的行业是不是一个“好”的行业,和两个要素有关:投资与预期回报的比例、扩大再生产时用工成本和固定资产投资的比例,或者说,穷or富、轻or重。
第一个要素很容易理解:如果一个行业的投入非常巨大但盈利却相对较小,那么它一定不会是一个好行业,同期投资回报率1.2的一定比1.1的强,即使你做过的全部理财行为仅限于把零钱存在余额宝里,也应该选一只收益率比较高的基金,我想这是无需证明的。
然而,一个行业的从业者的待遇,还要和另一个要素相关:用于扩大再生产的资金投入到人工和固定资产上的比例。
一个行业的赢利点如果主要来自于对固定资产的投入,那么行业的一大特质就是亲资本排斥人,即使这个行业的回报率很高,但收益的大部分都用来更新生产工具,那劳动者的待遇也很难得到提高。
如果划一个四宫格的话,我们会得到一个这样的结果:
轻资产高回报:热钱大量涌入,有暴雷的风险,但在那之前普遍欣欣向荣;
轻资产低回报:俗称“挣个辛苦钱”,很多不起眼的隐形冠军都出现在这个赛道上;
重资产高回报:准入门槛高,竞争不激烈,垄断企业(包括大型国企)最爱;
重资产低回报:广泛存在以人配物的现象,这是提桶跑路的高发地带;
为什么过去二十年的计算机是神?
两个原因,其一是随着计算机行业的深入普及,它的收益率一直是可观的,另一个不太为人注意的一点是,传统的软件开发的资产模式其实非常轻,固定资产的成本其实非常有限。
而之所以在二十年里这种成本都非常有限,又有三个原因:
“电脑”这个生产工具的价格确实没怎么上涨,甚至如果是以软件开发为目的,二十年里的开发机的成本刨除通胀还是下降的,而因为软件开发对工作环境又没有什么特殊要求,因此租金之类的成本上涨也不会显著高于大多数行业的一般水平;
“对现有算力水平提出挑战”没有成为软件开发行业的普遍方向,因为这会造成市场的剧烈反应,降低行业整体的收益率,过去二十年除了游戏行业之外,几乎所有的对算力要求高的软件在市场角度上都是失败的,甚至在显卡价格反常的时候,连游戏行业也会自觉放慢脚步;
其他开发工具的成本都没有上涨,很多甚至一直是0;对于开源运动,我倾向于先贤们只是出自一种道德上的自我满足,但这一行为确实产生了现实的意义:如果git上的每一段代码都要付费下载,我想软件公司的采购员工资会比程序员更高;
所以二十年的时间里,我们会有一个这样的计算机行业:这个行业确实能挣到钱,而且挣到的钱拿来扩大再生产的时候,绝大部分都花到了人(而不是机器)的身上。
大家可以拨冗看一下这个回答:
https://www.zhihu.com/question/53261114/answer/2526455583
这个答主excel功力很好,而且会主动学习一些计算机行业的新工具解决自己的问题,不管在哪个公司都已经算是相当优秀的员工了,但学习新语言搞一点简单的数据整理却遇到很大困难,最后完成的代码比评论区某程序员随手写的效率慢十倍不止。
很多工业行业里产品的品质几乎完全取决于机器,抢单子拼到最后实际拼的是谁家有进口的机床,这样的行业不管赚多少钱,对于机床也比对人上心,而软件开发和互联网行业的共识是:人是业务增长点,机器不是。一个老练的程序员用一台大学时代就跟着他的键盘上的字都快磨没了的老电脑写出来的代码也比一个业务逻辑不清晰的蹩脚开发用最新的苹果电脑敲出来的东西要好——更何况,即使是最新的苹果电脑,也不过才二三万的价格,对于能用两三年的吃饭的家伙来说,这个价格也绝对算不上贵。
有些夕阳产业(不点名),是真的挣不到钱,结果是全员饿人,从业者陷入普遍贫困;另有一些产业看上去红红火火,是能挣到钱的,但钱都用来保养和更换生产设备了,从业者捧着的确实是金饭碗,但过的又确实是牛马的日子。
一个直观的角度:当一个软件公司招聘,老板会想“给员工配台电脑”,但一个机械公司招聘,老板只会想“给机床配个操作员”——这样的两个行业,即使公司的年报都很好看,在哪个公司里员工更幸福,我想也是不言而喻的。
再粗暴的下一个结论:一个行业的普通工人的月收入如果买不起他正在用的生产工具,那他就有被他自己的生产工具消灭的可能。
为什么过去计算机是好的?
因为它硬件投入成本没怎么上涨,软件投入成本一直是0,但是行业收益却显著提升了,从业者一个个都赚得盆满钵满。
为什么CUDA是NVIDIA的护城河?
因为它软硬结合,成为了深度学习领域事实上的行业标准,只要黄的脑子不作大死,这个行业一天不完蛋他就有一天的肉吃。
这种护城河是不是好的?
我觉得对AI的发展好,对人的发展不好。或者说,现在AI研究领域这种“砸钱买卡比砸钱买人有用”的现状会堵死这个行业的出路,让它变成一个亲资本排斥人的又一个土木工程,如果一个行业的从业者都在想着提桶跑路,那无论它有什么伟大前景美好蓝图,实际上都没有任何价值——当然,这个其实也怪不到绿厂头上。
现在AI行业不是一个有“封神”的潜质的行业,甚至不是一个“好”的工程行业,随着热钱涌入带来的短暂的热度消散,重资产这个短板会逐渐暴露出来,而且由于竞争超越了一般行业的地域性,AI的短板会比其他重资产行业的短板还要短得多。
前段时间有一篇文章《Money is all you need》在知乎引起过小小的讨论,其实这篇“论文”虽然有点娱乐性质,所提出的问题是不是一个值得考虑的问题呢?恐怕很难说不是。
https://www.zhihu.com/question/462995456
如果你是搞AI研究的研究生或者工程师,不妨扪心自问,你的导师or公司,到底是给你配了一台服务器呢,还是给服务器配了一个你?
我暂且蒙在鼓里。
皮衣刀客的护城河挖得太过成功,以至于对真正的从业者来说,差不多该是提桶跑路——至少是给自己留条后路的时候了。
作者:霸王手枪腿
链接:https://www.zhihu.com/question/564812763/answer/2764728366
很好的问题。
先说是不是,严谨来说,在面向深度学习的计算芯片业务中,优秀的硬件架构,深厚且完善的软件生态都是护城河,但我认为CUDA是护城河中最关键的一环。
硬件和软件作为护城河都有各自的缺陷。
硬件作为护城河的缺陷在于缺乏用户粘性,硬件的竞争就像一轮轮地打擂台,制程每前进一步就是新的一轮擂台,竞争对手可以不参加前面的轮次,只需要在新的一轮中打败你,就可以很大程度上撬动你的市场。这就是为什么Intel当了这么久的CPU霸主,依旧迅速被AMD挑战得挺难受的原因。
软件是可以依靠生态形成强大的用户粘性的,但缺点在于容易被模仿。这里的模仿指的是当竞争对手模仿甚至是兼容你的交互界面时,你的用户流向竞争对手的成本就会变得很低。一个例子是AWS取得巨大成功之后,它的挑战者基本直接吸收了它的业务形态,一个AWS的老用户打开阿里云的官网不会觉得陌生,不需要有人教很快就可以上手。
而CUDA妙就妙在它处在软硬件结合的关键位置,对软件来说它是整个生态的基石,竞争对手难以绕过CUDA去兼容NV的生态,对于硬件来说,CUDA的设计基本就是NV硬件形态的软件抽象,基本每个核心概念都和GPU的硬件概念相对应。
那么对于竞争对手来说,就只剩两个选择,第一绕开CUDA,重建一套软件生态,这就要直面NV用户粘性的巨大挑战,第二兼容CUDA,这就面临两个问题,第一如果你的硬件路线和NV不一样的话,你很有可能实现得低效而难受,第二之后CUDA跟着NV硬件特性的演进而演进的时候,你只能选择跟。可以说两条路的难度都不小,也都有国产深度学习芯片厂商走,能否走通,哪条路能先走通就等待市场给出答案了。
作者:李明阳
链接:https://www.zhihu.com/question/564812763/answer/2768648173
这就是格局。
所有人都觉得Nvidia的对手是收购ATI后的AMD时,Nvidia给自己在游戏和设计领域之外,开拓了另一条赛道,科学计算。
2007年6月,CUDA发布。
在Nvidia的持续精耕细作下,CUDA已经成了科学计算领域的事实标准。
直到2009年8月,另一个潜在的竞争者OpenCL才出现。
我印象中是2009年10月,AMD才发布支持OpenCL的Stream SDK。
后来,因为AMD被Intel按在地上摩擦,游戏显卡又干不过Nvidia,风雨飘摇,自然没钱支持OpenCL,OpenCL本身又是个松散的联盟,碎片化严重。
结果就是,OpenCL远没有CUDA好用。
等神经网络算法火了,Nvidia又大力支持,各大AI框架因此优先支持CUDA,形成了正循环。
之后,Nvidia又发力与AI关系紧密的自动驾驶和机器人领域,推出了针对汽车的Drive系列芯片和针对工业机器人的Jetson系列。
这一切,都是以CUDA作为软件切入点,最终,CUDA就成了今天的样子,变成了又深又宽的护城河。
与其说CUDA是护城河,倒不如说Nvidia在科学计算、自动驾驶、人工智能、机器人这些领域已经形成了护城河,CUDA只是这个护城河的一部分,或者说是直接能接触到的护城河。
国内首个自动驾驶学习社区
近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称