图片来源:videomaker
什么是CUDA?什么是OpenCL?什么是OpenGL?我们为什么要知道这些?
相信每个视频剪辑师都会有这样扪心自问的时刻:“我电脑的速度就这么快了吗?不能再快一点了吗?”然后,他们会像寻找生命的意义一样追寻答案,不想却落入了漫无止尽的沉思和研究,最后这个问题又触及到另一个无法解答的问题,然后他们的思绪被卡住了。
当然,我们不知道所有问题的终极答案,但本文提供的信息会解答你最终会遇到的问题:什么是CUDA?什么是OpenCL?我为啥要知道这些?
首先,要了解CUDA和Open GL,就需要了解Open CL。你尽可以上网查百科、浏览各种论坛、看各种相关网页,然后一脸困惑地走出来。本文会用非常简单的语言讲解这几个概念,你不会看到“应用程序界面”这种词。当然了,就像一切逻辑思考一样,本文的探寻……从逻辑的中间点开始。
什么是CUDA?
它是显卡制造商英伟达创造出来的。简单来讲,CUDA把显卡的“大脑”转为“副CPU”,供程序使用。带CUDA功能的卡会接收CPU传来的任务,让CPU腾出来做一些难度更高、体量更大的任务。这类显卡主要用于快速计算光线、运动和交互信息,然后通过多个线路把处理好的信息发送出去,就像你在超市推着一辆购物车,有四个结算通道为你服务。CPU只需要再接收发回来的处理结果。
优势
对于程序员,CUDA是比较方便集成的。它基于软件,具有进行自定义的灵活性,相关系统的绝大部分都必须被编入程序的代码中。在用户侧,CUDA的主要功能是计算、数据生成和图像处理,所以处理、渲染和输出的时间会大大减少。而且流体动态模拟等画面分析工作也会受益。CUDA特别擅长光线追踪和光源处理,有了这些功能,特效渲染、视频编码和转换都会更快。
局限
如果你眼睛尖,就会注意上面的几个字:“带CUDA功能的卡”。由于CUDA是英伟达的专属,所以要用它的功能,就要用英伟达的显卡。比如,Mac Pro只用AMD的显卡,所以它是不能投入CUDA的怀抱的。而且相比于接下来要说的其他可选项,支持CUDA的程序不算多。(T)