曾经,笔者的一个从事网页设计工作的美工朋友给我讲过一个笑话,他们单位为了某大型宣传活动,准备设计一个巨型的条幅广告,而条幅广告的设计任务自然是他们美工的责任。不过,具体负责设计的不是我的朋友,而是他的几个同事。
根据我朋友的叙述,两位同事,同时为这个巨型的条幅广告进行设计,并且配备了单位最好的电脑来进行处理,但是,由于巨型的条幅广告尺寸过大,仅仅一个简单的渲染过程就要等待半个小时甚至最长长达一上午的时间。导致朋友的同事一天下来,仅仅能够进行简单的几部操作,而剩下的事情几乎全部是坐在电脑前等待……
可是,不知道读者是否能够想象得到,这些漫长的等待,如果使用拥有强大浮点运算能力的GPU来进行这些运算的话,仅仅需要几分钟甚至几秒钟,更甚至能够做到所见即所得的形式,这将会大幅度的提高工作时的工作效率。如果刚才我们所说的笔者朋友的同事能够拥有这样的设备的话,有可能这样一个巨型的条幅广告仅仅需要一个上午的时间就能够全部完成了。
◆CUDA,让你梦想成真:
CUDA,如今这个名词越来越多的出现在了我们的眼里。虽然说,目前来看,CUDA可能和我们目前的电脑应用并没有太明显的关系,不过相信随着未来越来越多的软件支持,CUDA最终将会走入我们每个人的电脑应用当中。前面我们说的那个例子,虽然现时来看并不太可能实现,不过,我们却很有可能在下一代的PhotoShop当中看到这一功能付诸实践。
『通过GPU加速,图像的渲染和处理将大大加快』
在Photoshop Creative Suite Next上通过GPU、物理加速的支持。Photoshop打开一个2GB、4.42亿像素的图像文件将非常简单,对图片进行缩放、旋转也不会存在任何延迟。这就是GPU的强大运算能力的体现,而想要实现这一功能,则需要借助于一个接口——CUDA。
◆CUDA是什么?
CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。它是一个完整的GPGPU解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。
在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。