ohbxiaoxin 2017-01-20
但最值得关注的并非英特尔公司这一项目将帮助人们在Spark集群中构建起怎样的机器学习方案,而是芯片巨头就此表达出的与GPU抗争到底的雄心。
巨大野心
BigDL主要面向那些希望利用机器学习处理Spark或Hadoop集群中数据的受众,特别是那些已经开始采用Caffe或者Torch库的用户。BigDL的深度学习方案与Torch非常类似。利用BigDL,二者创建的模型皆可面向Spark程序进行导入及运行。另外,Spark还允许此类负载实现跨集群向外扩展。
然而与其它机器学习框架使用GPU加速实现流程推动的思路不同,BigDL采用的是英特尔的数学内核库(Math Kernel)。其中囊括的数学函数针对多线程执行与英特尔特定处理器扩展进行了优化,且芯片巨头在其Python发行版等多个项目中对此加以提及。
英特尔公司宣称,BigDL中的处理流程“相较于立足单节点至强(即相较于主流GPU方案)上的现成开源Caffe、Torch或者TensorFlow拥有几个数量级的速度优势。”不过,BigDL库本身并不具备任何具体的基准测试结果来支持这一说法。
如果GPU加速成为机器学习库中的标准提速选项,为什么英特尔公司没有默认加入GPU支持能力?乍一看来,这似乎是因为Spark在传统角度讲并不属于GPU加速型产品。但这样的理由其实说不通,因为IBM已经建立起对应项目,且商用Spark供应商Databricks公司已经于去年年底在其服务中添加了对GPU加速型Spark的支持。从理论上讲,BigDL完全能够与GPU加速型Spark进行配合,但英特尔的整体规划显然有所不同。
硬件之争
英特尔公司一直在凭借着其至强Phi处理器产品线在高端计算市场上与GPU厮杀。英特尔方面以GPU的形式对其至强Phi处理器进行封装——即采用PCIe附加卡的形式——同时纳入了OpoenMP与OpenCL等软件工具以实现其硬件的并发与高速处理效果。(英特尔公司还收购了一家名为Nervana的机器学习硬件厂商,且很可能将其产品以PCIe附加卡的形式推出。)
这一切意味着开发者将拥有更多选择:在理论上,将现有软件运行在至强Phi上可实现远低于将其移植至GPU架构中的代码修改量。这也意味着运营工作更易于进行,因为由至强Phi附加卡构建的系统可通过简单进行卡板插入实现升级或者扩展,而不必对整体机架进行更换。
在这方面,BigDL可被视为支持英特尔未来发展规划的重要概念验证性应用之一。不过行业的整体势头明显更偏向GPU——虽然大多数用于GPU加速的软件必须遵循由另一家硬件供应商制定的客观标准(英伟达与CUDA)。另外,考虑到Spark及其它库已经开始全面引入GPU加速机制,因此开发者并不需要付出太多精力就能享受到由此带来的收益。