oneflow
oneflow copied to clipboard
OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.
wkv 和 缩减 graph 编译时间的合并分支。
背景:https://github.com/Oneflow-Inc/OneCloud/issues/136#issuecomment-1185260240 概述:缺少指数分布的随机数生成算子 文档截图: 
## Summary ``` RuntimeError: Check failed: (nd_sbp.has_value()) == (this->has_nd_sbp_symbol_id()) (0 vs 1) File "/home/xuxiaoyu/dev/oneflow/oneflow/core/functional/impl/global_cast.cpp", line 526, in operator() MetaInfoConsistencyCheck(parallel_desc, sbp_parallels, grad_sbp_parallels, 1, check_meta) File "/home/xuxiaoyu/dev/oneflow/oneflow/core/framework/consistency_check.cpp", line 253, in MetaInfoConsistencyCheck MetaInfoConsistencyCheck(placement,...
MakeParallelConf函数中[处理hierarchy](https://github.com/Oneflow-Inc/oneflow/blob/release/v0.8.0/oneflow/core/framework/parallel_conf_util.cpp#L57-L61)的这部分,似乎可以挪到[for循环](https://github.com/Oneflow-Inc/oneflow/blob/release/v0.8.0/oneflow/core/framework/parallel_conf_util.cpp#L39)外面?
- [x] 修复https://github.com/Oneflow-Inc/OneTeam/issues/1674 中提到的问题
优化cuda_tensor.numpy(),内部不再调用cuda_tensor.cpu().to_numpy(),而是直接在main线程的cuda stream上SyncAutoMemCpy。
oneflow 在执行矩阵乘法时,如存在dim=0的维度,则会报错 ``` >>> import torch >>> import oneflow as flow loaded library: /lib/x86_64-linux-gnu/libibverbs.so.1 >>> torch.__version__ '1.10.2' >>> flow.__version__ '0.8.1.dev20220903+cu112' >>> a = torch.randn(0, 5) >>> b = torch.randn(5, 6)...
目前 FP16/BF16 的主要目的是加速,通常只有 matmul 是加速最明显的。 如果将太多算子在 FP16/BF16 执行,计算图中容易有大量 f2h h2f,反而变慢。 因此建议加个 restrict 模式,只将 matmul 在 FP16/BF16 执行,其它算子仍然在 FP32 执行。 这样,只需要在 matmul 头尾加上 f2h h2f,其它地方都不需要 f2h h2f。
有用户希望加一个严格模式,要求用户手动做所有数据类型转换,否则报错。这样用户可以自己精确控制。