第(1/3)页 要搞清楚CUDA是什么,先要明白CPU和GPU的区别。 CPU架构有复杂的控制单元和巨大缓存。 这种设计是为了处理复杂逻辑运算。这要求CPU必须有很强的单核性能。 但CPU物理核心数量有限,就算最高端的服务器CPU,面对海量简单计算时,也会因为线程数量限制而排队。 快看网的推荐算法,本质是海量矩阵乘法。 这些计算本身不复杂,不需要多强逻辑推理,但数量极其庞大。 让CPU去算矩阵,是高射炮打蚊子,效率极低,而且容易把服务器撑爆。 GPU架构完全不同。 GPU没有复杂控制单元,内部塞满了成百上千个简单的流处理器。 这些流处理器只能做基础运算。 但因为数量庞大,它们可以同时并行处理海量数据。 这完美契合了AI算法和推荐系统需要的大规模并行计算。 可是,硬件再强,也需要软件驱动。 在CUDA出现前,程序员想用显卡算力做非图形渲染的通用计算,简直是噩梦。 他们必须把非图形数据,强行伪装成图形像素数据,通过复杂图形API通道传给显卡。 等显卡算完,还要把输出像素数据反向解析回通用数据。 这种操作极其繁琐,写错一行代码,就会导致程序崩溃。 所以,空有强大并行算力,却没人能轻易用在非游戏领域。 直到黄仁勋做出大胆决定,推出CUDA。 CUDA全称是计算统一设备架构。 它本质是一个软件开发平台和编程模型。 英伟达在每张显卡底层嵌入了CUDA硬件指令集,同时在软件层面推出一整套编译器、库文件和开发工具。 CUDA最伟大也最可怕的地方在于,它允许程序员直接用最普及的C语言,调用显卡底层算力。 程序员不再需要学晦涩的图形API,也不需要伪装数据。 只要会写C语言,只要装了CUDA开发包,就能轻松把一段并行计算代码跑在英伟达显卡上。 这极大降低了GPU通用计算门槛。 华尔街投资人不理解,为什么一家卖硬件的公司,要养几千软件工程师维护一个免费给开发者用的平台。 但黄仁勋顶住压力,强行推广CUDA。 他甚至跑到各大学计算机系,免费发支持CUDA的显卡,鼓励学生用CUDA做科研计算。 第(1/3)页