tensorflow - XLA rng-bit-generator 占用太多内存
问题描述
XLA 为这个张量分配了 4G 的内存。其大小似乎与批量大小成比例。这对我来说没有意义,它似乎不是要存储在 HBM 中的模型图的一部分。我使用 TPUv3。
除了模型的初始化,我不使用任何随机操作。此外,我为所有权重声明了 bfloat16,但这是一个 u32 张量。
Largest program allocations in hbm:
1. Size: 4.00G
Shape: u32[128,8,1024,1024]{3,2,1,0:T(8,128)}
Unpadded size: 4.00G
XLA label: %rng-bit-generator = (u32[2,128]{1,0:T(2,128)}, u32[128,8,1024,1024]{3,2,1,0:T(8,128)}) rng-bit-generator(u32[2,128]{1,0:T(2,128)} %fusion.2446), algorithm=rng_default
Allocation type: HLO temp
==========================
上述分配的原因可能是什么?我使用来自:https ://github.com/kamenbliznashki/pixel_models 的像素钉
问题:
u32
当我所有的权重/模型定义(包括全局环境标志)都使用 BF16 时,为什么这个张量有一个类型?- 为什么要使用 rng-bit-generator?
解决方案
推荐阅读
- arduino - 来自 ADC Arduino 的错误值 - 频率计
- python - 使用 Python 排列列表中的 +1 是什么意思?
- c# - nHibernate 因 whereNot 限制而失败,但因 where 限制而失败
- swift - 受泛型类约束的 Swift 泛型函数
- c++ - 如何打印嵌套 std::unordered_map 的内容?
- python - 来自两个列表的python常用值列表
- botframework - 在 Bot 框架模拟器上测试 LUIS bot 的问题
- swift5 - Xcode 11 Swift 5 在非主线程中更新标签
- symfony - lexik JWT 在解码令牌时出错无效令牌
- javascript - Foreach 循环未完成