Xiaoyu Xu

Results 200 comments of Xiaoyu Xu

cuda device 也存在这个问题,我们的 device 必带了 index。 ``` >>> flow.device('cuda') device(type='cuda', index=0) ``` ``` >>> torch.device('cuda') device(type='cuda') ``` global_tensor.to(device) 是一个合理的特性,在支持它时,会报一个错误:不支持带 index 的 device。这个问题通过改 OneFlow 里面 to 的实现来规避了。 但是发现了 device 这个不一致的地方。这里可以先不做改动,但是记录下存在这个事情,看后面是否会有别的影响。

如果确认需要在环境中使用RDMA,则需要保证RDMA init在DataLoader创建之后。由于先初始化DataLoader(初始化时即创建worker进程),后使用RDMA即可避免问题; 看起来可以在 dataloader 初始化时加一个提示,如果准备进行多 worker fork 进程,且 rdma 已经初始化,就打印提示,有两种方式: - 报 error - 报 warning

> PyTensorObject 尝试析构时,Tensor.owns_pyobj_ 置为 true,表示持有权交还给 CppTensor,PyTensorObject.data 置空,解除对 CppTensor 的引用,PyTensorObject 的引用计数+1,不对 PyTensorObject 做内存上的析构 看起来就是缓存了一个 PyTensorObject 到 CppTensor 上?

> 有其他针对静态图的显存回收方法吗 现在还没有。静态图当前采用的是静态内存分配,在整个图删除后才会释放资源。 预编译很多静态图,是为了在一台机器上支持很多个模型的推理服务么

> 静态图输入尺寸是动态的 静态图下彻底解决动态 shape 的问题还在讨论中,预计在将来的版本中解决。

> > 静态图下彻底解决动态 shape 的问题还在讨论中,预计在将来的版本中解决。 > > 期待!大概哪个版本能解决这个问题,大概要多场时间,比如3个月?6个月?1年? 当前有方案的调研,但是还没很紧迫的要解决这个问题。 之前推荐的解决办法是在静态图外部 pack 成固定大小的输入来规避这个问题。看这个是否有帮助。 另外在推理场景,这个动态 shape 的需求在您那里是有特别强的需求么,大致的场景是怎么样的可以描述下不。

``` auto GetBlobDesc4BnInOp = [&](const std::string& bn) -> BlobDesc* { const LogicalBlobId& lbi = op->BnInOp2Lbi(bn); if (lbi2logical_blob_desc_.find(lbi) != lbi2logical_blob_desc_.end()) { return lbi2logical_blob_desc_.at(lbi).get(); } return nullptr; }; ``` 打印: - 报错的...

debug branch: https://github.com/Oneflow-Inc/oneflow/pull/9432

> OneFlow version (run python3 -m oneflow --doctor): 0.9.0 Please update oneflow like this: https://github.com/siliconflow/onediff?tab=readme-ov-file#1-install-oneflow

The first call of nn.Graph will do graph compilation which tasks time. Did you ignore the time of the first call? Also, you can set self.debug(0) to see the compilation...