支持DirectX 12的GPU现也可用来加速TensorFlow运算

微软发布了TensorFlow扩展组件TensorFlow-DirectML,让开发者可以在Windows平台上以支持DirectX 12的GPU,加速TensorFlow模型运算,而且这项支持还涵盖适用Linux的Windows子系统(WSL)。目前已经在GitHub开源,供开发者取用程序代码。

TensorFlow是一个通用的机器学习框架,可用来开发、训练和发布机器学习模型,由于通常机器学习工作负载都需要执行大量的运算,因此可以使用类似GPU的专用硬件来加速工作负载,微软提到,TensorFlow虽可以同时利用CPU和GPU来执行运算,但GPU加速仅限于特定供应商的平台,有别于Windows或是其他用户的硬件。

另一方面,DirectX一直以来,被广泛地用于加速Windows上的游戏和计算应用程序,其DirectML可以让支持DirectX 12的GPU,执行高性能的数学运算,因此微软通过集成TensorFlow以及DirectML,让开发者可以在Windows,使用GPU执行完整的机器学习训练和推理功能。

而且这不只是让开发者可以在Windows,以GPU加速TensorFlow运算,这项支持还波及WSL,也就是说,开发者可以在任何使用DirectX 12 GPU的Windows或是WSL环境,执行或是训练TensorFlow模型。

微软解释,TensorFlow-DirectML是通过加入名为DML而非GPU的新设备,将TensorFlow和DirectML集成在一起,其新的核心集构建在DirectML API之上,而非像是现有的CPU和GPU核心,创建在Eigen函数库之上。

由于DirectML又是以Direct3D 12低端函数库开发,该绘图API是专为需要对资源分配和工作调度,进行绝对控制的高性能低延迟应用程序设计,因此DirectML与TensorFlow集成,还需要依赖设备Runtime负责在设备与主机间,管理设备内存、复制张量、记录GPU命令,以及调度工作。