为什么说CUDA是NVIDIA的护城河?
事实上不仅仅是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扮演着胶水级核心航母的角色。还有其它护卫舰,而这些护卫舰都绕不开。
蓝海大脑 京ICP备18017748号-1