我在这里阅读了XLA预发布文档。
https://www.tensorflow.org/versions/master/resources/xla_prerelease#xla_accelerated_linear_algebra
它讨论了元素的数据类型,但没有详细介绍张量器本身的数据组织。一旦XLA可用,如何处理SparseTensor对象上的操作?
答案 0 :(得分:1)
布局限制了输入和输出张量的数据组织,并且不包括稀疏布局,尽管正如Jingyue所说,它们将来可以扩展。 AST中的张量的内部表示原则上可以是后端想要的任何东西,并且期望编译器可以将数据重新组织到不同的布局,以便于由不同后端实现的不同运算符。
我不知道有人已经考虑过如何有效地为稀疏张量做这件事。原则上,它可以作为编译器传递来完成,以推断稀疏性并传播它,并为所有相关运算符提供稀疏实现。今天没有类似的东西。
答案 1 :(得分:0)
不,XLA专注于密集的张量,并且没有以有效的方式处理稀疏张量今天。
可以轻松扩展以允许用户使用layouts表达一些稀疏性(例如内部填充)。
答案 2 :(得分:0)
稀疏数据是我们希望工作的东西,尽管它有一些挑战。例如。目前XLA依赖于静态地知道每个缓冲区的确切大小。我们当然可以找到解决这个问题的方法,但到目前为止一直专注于密集数据。
答案 3 :(得分:0)
几年后,XLA似乎为稀疏张量提供了一些支持,并且在此方面运行良好。我的工作流程涉及到稀疏张量,因为这些张量非常大的数据无法保存在内存中,然后进行切片和操作,最后在较低维度的张量上执行数学运算。对于切片稀疏张量,xla可使速度提高约4倍