vlambda博客
学习文章列表

陈天奇:在深度学习框架之间共享张量——内存张量结构DLPack的PythonAPI来了



  新智元报道 

来源:推特

编辑:keyu

【新智元导读】DLPack是一种开放的内存张量结构,用于在框架之间共享张量,近日,开发者陈天奇更新社交媒体详细介绍了为DLPack添加PythonAPI、语义和实现细节的内容。


大家知道DLPack吗:

陈天奇:在深度学习框架之间共享张量——内存张量结构DLPack的PythonAPI来了

深度学习从业人员或多或少都会有了解,诸如 Tensorflow、PyTorch 等深度学习框架,确实为深度学习的快速原型设计和模型部署提供了强大的工具箱。

 

但是,不幸的是,它们的易用性通常以碎片化为代价

 

他们仅仅限于对每个框架单独使用,如果对框架进行垂直整合,那么开发流程可以适用于常见用例,但实际上,打破常规可能会是个非常棘手的问题。

 

一种解决的方法是,在内存中直接将张量从一个框架传递到另一个框架,而不发生任何数据复制或拷贝。

 

DLPack,就是张量数据结构的中间内存表示标准,它是一种开放的内存张量结构,用于在框架之间共享张量

 

它提供了一个简单、可移植的内存数据结构:

陈天奇:在深度学习框架之间共享张量——内存张量结构DLPack的PythonAPI来了

DLPack使:

 

  • 在深度学习框架之间更轻松地共享操作员。
 
  • 更容易包装供应商级别的运营商实施,允许在引入新设备/操作时进行协作。
 
  • 快速交换后端实现,如不同版本的BLAS
 
  • 对于最终用户来说,这可以带来更多的运营商,并且可以在框架之间混合使用。
陈天奇:在深度学习框架之间共享张量——内存张量结构DLPack的PythonAPI来了
下载地址:
https://gitee.com/mirrors/DLPack
 
此外, DLPack的开发者不打算实现Tensor和Ops,而是将其用作跨框架重用张量和操作的公共桥梁
 
此外,最近,DLPack的开发者陈天奇更新了一则Git,标题为:“ 为 DLPack 添加PythonAPI、语义和实现细节 ”,在其中讨论了添加的详细内容、以及要引用DLPack本身的什么内容。
 
同时,陈天奇还计划将一些文档导入DLPack,目前,DLPack没有任何关于Python级API的文档。
陈天奇:在深度学习框架之间共享张量——内存张量结构DLPack的PythonAPI来了
感兴趣的小伙伴可以去下面地址看一看:
https://github.com/data-apis/consortium-feedback/issues/1
 

参考链接:
https://github.com/data-apis/array-api/pull/106