Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bump to cpp17 #9632

Merged
merged 45 commits into from
Feb 5, 2023
Merged

bump to cpp17 #9632

merged 45 commits into from
Feb 5, 2023

Conversation

daquexian
Copy link
Contributor

@daquexian daquexian commented Dec 20, 2022

升级 c++ 标准到 17,PyTorch 已经升级了 pytorch/pytorch#85969

同时废弃对 cuda 10 的支持


C++17 主要特性:

  1. 使用结构化绑定可以方便地返回多值,相比传入指针或引用的方式更清晰简洁(https://zhuanlan.zhihu.com/p/139140185 ):
    std::pair<int, int> f() {
      return {1, 2};
    }
    auto [a, b] = f();  // 等效于 a=1, b=2
  2. 使用 if constexpr 在很多情况下可以大大简化代码而不用再写 SFINAE(https://zhuanlan.zhihu.com/p/380856254 ):
    template<typename T>
    std::string toString(T t) {
      if constexpr (std::is_same_v<T, std::string>) {
        return t;
      } else {
        return std::to_string(t);
      }
    }
  3. 提供 std::***_v 代替 std::***::value
  4. 自带 std::variant 和 std::optional

本 PR 改动内容:

  • 升级 json 库修复对 <filesystem> 头文件的检测错误
  • op_schema_emitter.cpp 156 行 sourceIncludeFilename 改为 sourceIncludeFilename.getValue(),修复 c++17 引入 filesystem 后 sourceIncludeFilename 类型为 cl::opt<std::string> 而引起的 ambiguous 调用
  • 删掉 cplusplus_17.cpp/.h 文件
  • 在 CI 中改为用 gcc9 而不是 gcc7 编译 oneflow,停止支持和 c++17 不兼容的 cuda 10.2
  • skip/修改了一些 test case

Signed-off-by: daquexian <daquexian566@gmail.com>
@daquexian daquexian marked this pull request as ready for review December 20, 2022 04:28
@daquexian daquexian changed the title bump to cpp17 [don't merge] bump to cpp17 Dec 20, 2022
Signed-off-by: daquexian <daquexian566@gmail.com>
Signed-off-by: daquexian <daquexian566@gmail.com>
Signed-off-by: daquexian <daquexian566@gmail.com>
Signed-off-by: daquexian <daquexian566@gmail.com>
@daquexian daquexian requested review from oneflow-ci-bot and removed request for oneflow-ci-bot January 4, 2023 09:34
daquexian and others added 2 commits January 26, 2023 23:04
Signed-off-by: daquexian <daquexian566@gmail.com>
@github-actions
Copy link
Contributor

Code got formatted by CI. Please request CI again if you still want to have this PR merged. If the PR is from a forked repo, please download the patch files from the GitHub Actions web page and apply them locally.

@daquexian daquexian requested review from oneflow-ci-bot and removed request for oneflow-ci-bot January 26, 2023 16:03
Signed-off-by: daquexian <daquexian566@gmail.com>
Signed-off-by: daquexian <daquexian566@gmail.com>
Signed-off-by: daquexian <daquexian566@gmail.com>
@github-actions
Copy link
Contributor

Speed stats:

Signed-off-by: daquexian <daquexian566@gmail.com>
@github-actions
Copy link
Contributor

Speed stats:

Signed-off-by: daquexian <daquexian566@gmail.com>
@github-actions
Copy link
Contributor

Speed stats:

Signed-off-by: daquexian <daquexian566@gmail.com>
@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2023

View latest API docs preview at: https://staging.oneflow.info/docs/Oneflow-Inc/oneflow/pr/9632/

@daquexian daquexian mentioned this pull request Feb 4, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2023

Speed stats:
GPU Name: GeForce GTX 1080 









❌ OneFlow resnet50 time: 153.0ms (= 15302.1ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 164.6ms (= 16459.3ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
❌ Relative speed: 1.08 (= 164.6ms / 153.0ms)

OneFlow resnet50 time: 92.9ms (= 9287.6ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 103.2ms (= 10318.3ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.11 (= 103.2ms / 92.9ms)

OneFlow resnet50 time: 60.8ms (= 12159.6ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 79.2ms (= 15832.9ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.30 (= 79.2ms / 60.8ms)

OneFlow resnet50 time: 42.6ms (= 8514.3ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 79.5ms (= 15894.3ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.87 (= 79.5ms / 42.6ms)

OneFlow resnet50 time: 36.3ms (= 7263.6ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 69.1ms (= 13822.6ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.90 (= 69.1ms / 36.3ms)

@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2023

View latest API docs preview at: https://staging.oneflow.info/docs/Oneflow-Inc/oneflow/pr/9632/

@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2023

Speed stats:
GPU Name: GeForce GTX 1080 









❌ OneFlow resnet50 time: 153.0ms (= 15296.1ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 164.3ms (= 16434.1ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
❌ Relative speed: 1.07 (= 164.3ms / 153.0ms)

OneFlow resnet50 time: 92.8ms (= 9279.3ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 104.2ms (= 10423.9ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.12 (= 104.2ms / 92.8ms)

OneFlow resnet50 time: 60.4ms (= 12079.8ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 86.9ms (= 17387.4ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.44 (= 86.9ms / 60.4ms)

OneFlow resnet50 time: 42.4ms (= 8480.2ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 72.4ms (= 14476.4ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.71 (= 72.4ms / 42.4ms)

OneFlow resnet50 time: 36.4ms (= 7281.8ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 70.2ms (= 14030.9ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.93 (= 70.2ms / 36.4ms)

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

Speed stats:
GPU Name: GeForce GTX 1080 









❌ OneFlow resnet50 time: 152.8ms (= 15282.4ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 163.0ms (= 16300.3ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
❌ Relative speed: 1.07 (= 163.0ms / 152.8ms)

OneFlow resnet50 time: 91.8ms (= 9178.1ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 105.6ms (= 10557.6ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.15 (= 105.6ms / 91.8ms)

OneFlow resnet50 time: 60.5ms (= 12106.5ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 82.4ms (= 16485.7ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.36 (= 82.4ms / 60.5ms)

OneFlow resnet50 time: 42.9ms (= 8584.4ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 71.5ms (= 14301.2ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.67 (= 71.5ms / 42.9ms)

OneFlow resnet50 time: 37.3ms (= 7459.4ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 82.1ms (= 16426.9ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 2.20 (= 82.1ms / 37.3ms)

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

View latest API docs preview at: https://staging.oneflow.info/docs/Oneflow-Inc/oneflow/pr/9632/

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

View latest API docs preview at: https://staging.oneflow.info/docs/Oneflow-Inc/oneflow/pr/9632/

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

Speed stats:
GPU Name: GeForce GTX 1080 

❌ OneFlow resnet50 time: 141.3ms (= 14130.5ms / 100, input_shape=[16, 3, 224, 224])
PyTorch resnet50 time: 144.6ms (= 14457.7ms / 100, input_shape=[16, 3, 224, 224])
❌ Relative speed: 1.02 (= 144.6ms / 141.3ms)

OneFlow resnet50 time: 82.0ms (= 8199.1ms / 100, input_shape=[8, 3, 224, 224])
PyTorch resnet50 time: 87.0ms (= 8698.9ms / 100, input_shape=[8, 3, 224, 224])
✔️ Relative speed: 1.06 (= 87.0ms / 82.0ms)

OneFlow resnet50 time: 51.3ms (= 10264.4ms / 200, input_shape=[4, 3, 224, 224])
PyTorch resnet50 time: 60.3ms (= 12060.5ms / 200, input_shape=[4, 3, 224, 224])
✔️ Relative speed: 1.17 (= 60.3ms / 51.3ms)

OneFlow resnet50 time: 33.5ms (= 6691.4ms / 200, input_shape=[2, 3, 224, 224])
PyTorch resnet50 time: 43.4ms (= 8681.8ms / 200, input_shape=[2, 3, 224, 224])
✔️ Relative speed: 1.30 (= 43.4ms / 33.5ms)

OneFlow resnet50 time: 25.7ms (= 5134.3ms / 200, input_shape=[1, 3, 224, 224])
PyTorch resnet50 time: 44.4ms (= 8882.2ms / 200, input_shape=[1, 3, 224, 224])
✔️ Relative speed: 1.73 (= 44.4ms / 25.7ms)

OneFlow swin dataloader time: 0.237s (= 47.463s / 200, num_workers=1)
PyTorch swin dataloader time: 0.150s (= 29.903s / 200, num_workers=1)
Relative speed: 0.630 (= 0.150s / 0.237s)

OneFlow swin dataloader time: 0.064s (= 12.756s / 200, num_workers=4)
PyTorch swin dataloader time: 0.042s (= 8.439s / 200, num_workers=4)
Relative speed: 0.662 (= 0.042s / 0.064s)

OneFlow swin dataloader time: 0.037s (= 7.331s / 200, num_workers=8)
PyTorch swin dataloader time: 0.023s (= 4.601s / 200, num_workers=8)
Relative speed: 0.628 (= 0.023s / 0.037s)

❌ OneFlow resnet50 time: 153.0ms (= 15299.3ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 164.3ms (= 16433.3ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
❌ Relative speed: 1.07 (= 164.3ms / 153.0ms)

OneFlow resnet50 time: 93.1ms (= 9310.4ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 103.7ms (= 10373.3ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.11 (= 103.7ms / 93.1ms)

OneFlow resnet50 time: 61.4ms (= 12281.6ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 79.8ms (= 15952.7ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.30 (= 79.8ms / 61.4ms)

OneFlow resnet50 time: 42.6ms (= 8513.1ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 71.1ms (= 14212.4ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.67 (= 71.1ms / 42.6ms)

OneFlow resnet50 time: 38.3ms (= 7659.6ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 69.1ms (= 13822.4ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.80 (= 69.1ms / 38.3ms)

@daquexian daquexian enabled auto-merge (squash) February 5, 2023 05:29
@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

Speed stats:
GPU Name: GeForce GTX 1080 

❌ OneFlow resnet50 time: 141.2ms (= 14116.1ms / 100, input_shape=[16, 3, 224, 224])
PyTorch resnet50 time: 141.8ms (= 14184.7ms / 100, input_shape=[16, 3, 224, 224])
❌ Relative speed: 1.00 (= 141.8ms / 141.2ms)

OneFlow resnet50 time: 81.6ms (= 8157.8ms / 100, input_shape=[8, 3, 224, 224])
PyTorch resnet50 time: 87.0ms (= 8696.3ms / 100, input_shape=[8, 3, 224, 224])
✔️ Relative speed: 1.07 (= 87.0ms / 81.6ms)

OneFlow resnet50 time: 50.8ms (= 10157.8ms / 200, input_shape=[4, 3, 224, 224])
PyTorch resnet50 time: 60.5ms (= 12103.8ms / 200, input_shape=[4, 3, 224, 224])
✔️ Relative speed: 1.19 (= 60.5ms / 50.8ms)

OneFlow resnet50 time: 33.9ms (= 6778.6ms / 200, input_shape=[2, 3, 224, 224])
PyTorch resnet50 time: 46.6ms (= 9328.5ms / 200, input_shape=[2, 3, 224, 224])
✔️ Relative speed: 1.38 (= 46.6ms / 33.9ms)

OneFlow resnet50 time: 25.4ms (= 5079.6ms / 200, input_shape=[1, 3, 224, 224])
PyTorch resnet50 time: 41.6ms (= 8325.8ms / 200, input_shape=[1, 3, 224, 224])
✔️ Relative speed: 1.64 (= 41.6ms / 25.4ms)

OneFlow swin dataloader time: 0.233s (= 46.602s / 200, num_workers=1)
PyTorch swin dataloader time: 0.150s (= 30.017s / 200, num_workers=1)
Relative speed: 0.644 (= 0.150s / 0.233s)

OneFlow swin dataloader time: 0.065s (= 12.973s / 200, num_workers=4)
PyTorch swin dataloader time: 0.041s (= 8.251s / 200, num_workers=4)
Relative speed: 0.636 (= 0.041s / 0.065s)

OneFlow swin dataloader time: 0.036s (= 7.292s / 200, num_workers=8)
PyTorch swin dataloader time: 0.023s (= 4.528s / 200, num_workers=8)
Relative speed: 0.621 (= 0.023s / 0.036s)

❌ OneFlow resnet50 time: 153.1ms (= 15307.9ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 163.5ms (= 16352.0ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
❌ Relative speed: 1.07 (= 163.5ms / 153.1ms)

OneFlow resnet50 time: 93.9ms (= 9386.2ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 110.9ms (= 11086.7ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.18 (= 110.9ms / 93.9ms)

OneFlow resnet50 time: 61.4ms (= 12273.9ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 85.4ms (= 17074.7ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.39 (= 85.4ms / 61.4ms)

OneFlow resnet50 time: 42.2ms (= 8434.4ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 71.2ms (= 14230.3ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.69 (= 71.2ms / 42.2ms)

OneFlow resnet50 time: 35.9ms (= 7178.9ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 78.7ms (= 15748.3ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 2.19 (= 78.7ms / 35.9ms)

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

View latest API docs preview at: https://staging.oneflow.info/docs/Oneflow-Inc/oneflow/pr/9632/

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

Speed stats:
GPU Name: GeForce GTX 1080 

❌ OneFlow resnet50 time: 141.3ms (= 14129.5ms / 100, input_shape=[16, 3, 224, 224])
PyTorch resnet50 time: 144.0ms (= 14401.9ms / 100, input_shape=[16, 3, 224, 224])
❌ Relative speed: 1.02 (= 144.0ms / 141.3ms)

OneFlow resnet50 time: 82.5ms (= 8248.7ms / 100, input_shape=[8, 3, 224, 224])
PyTorch resnet50 time: 87.7ms (= 8772.2ms / 100, input_shape=[8, 3, 224, 224])
✔️ Relative speed: 1.06 (= 87.7ms / 82.5ms)

OneFlow resnet50 time: 51.0ms (= 10200.3ms / 200, input_shape=[4, 3, 224, 224])
PyTorch resnet50 time: 60.0ms (= 12008.1ms / 200, input_shape=[4, 3, 224, 224])
✔️ Relative speed: 1.18 (= 60.0ms / 51.0ms)

OneFlow resnet50 time: 34.1ms (= 6828.8ms / 200, input_shape=[2, 3, 224, 224])
PyTorch resnet50 time: 43.5ms (= 8693.1ms / 200, input_shape=[2, 3, 224, 224])
✔️ Relative speed: 1.27 (= 43.5ms / 34.1ms)

OneFlow resnet50 time: 27.1ms (= 5412.8ms / 200, input_shape=[1, 3, 224, 224])
PyTorch resnet50 time: 35.2ms (= 7042.1ms / 200, input_shape=[1, 3, 224, 224])
✔️ Relative speed: 1.30 (= 35.2ms / 27.1ms)

OneFlow swin dataloader time: 0.237s (= 47.385s / 200, num_workers=1)
PyTorch swin dataloader time: 0.153s (= 30.589s / 200, num_workers=1)
Relative speed: 0.646 (= 0.153s / 0.237s)

OneFlow swin dataloader time: 0.064s (= 12.776s / 200, num_workers=4)
PyTorch swin dataloader time: 0.042s (= 8.491s / 200, num_workers=4)
Relative speed: 0.665 (= 0.042s / 0.064s)

OneFlow swin dataloader time: 0.037s (= 7.437s / 200, num_workers=8)
PyTorch swin dataloader time: 0.022s (= 4.439s / 200, num_workers=8)
Relative speed: 0.597 (= 0.022s / 0.037s)

❌ OneFlow resnet50 time: 153.3ms (= 15328.1ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 164.2ms (= 16422.8ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
❌ Relative speed: 1.07 (= 164.2ms / 153.3ms)

OneFlow resnet50 time: 92.8ms (= 9278.8ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 112.6ms (= 11256.6ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.21 (= 112.6ms / 92.8ms)

OneFlow resnet50 time: 61.1ms (= 12228.0ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 79.3ms (= 15867.8ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.30 (= 79.3ms / 61.1ms)

OneFlow resnet50 time: 43.4ms (= 8672.4ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 82.1ms (= 16424.9ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.89 (= 82.1ms / 43.4ms)

OneFlow resnet50 time: 35.3ms (= 7065.6ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 68.9ms (= 13772.1ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.95 (= 68.9ms / 35.3ms)

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

View latest API docs preview at: https://staging.oneflow.info/docs/Oneflow-Inc/oneflow/pr/9632/

Signed-off-by: daquexian <daquexian566@gmail.com>
@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

Speed stats:
GPU Name: GeForce GTX 1080 

❌ OneFlow resnet50 time: 141.2ms (= 14124.2ms / 100, input_shape=[16, 3, 224, 224])
PyTorch resnet50 time: 140.9ms (= 14093.0ms / 100, input_shape=[16, 3, 224, 224])
❌ Relative speed: 1.00 (= 140.9ms / 141.2ms)

OneFlow resnet50 time: 82.6ms (= 8255.6ms / 100, input_shape=[8, 3, 224, 224])
PyTorch resnet50 time: 89.8ms (= 8980.7ms / 100, input_shape=[8, 3, 224, 224])
✔️ Relative speed: 1.09 (= 89.8ms / 82.6ms)

OneFlow resnet50 time: 51.1ms (= 10215.6ms / 200, input_shape=[4, 3, 224, 224])
PyTorch resnet50 time: 59.5ms (= 11892.8ms / 200, input_shape=[4, 3, 224, 224])
✔️ Relative speed: 1.16 (= 59.5ms / 51.1ms)

OneFlow resnet50 time: 34.0ms (= 6801.6ms / 200, input_shape=[2, 3, 224, 224])
PyTorch resnet50 time: 46.3ms (= 9263.9ms / 200, input_shape=[2, 3, 224, 224])
✔️ Relative speed: 1.36 (= 46.3ms / 34.0ms)

OneFlow resnet50 time: 25.7ms (= 5141.5ms / 200, input_shape=[1, 3, 224, 224])
PyTorch resnet50 time: 43.6ms (= 8720.0ms / 200, input_shape=[1, 3, 224, 224])
✔️ Relative speed: 1.70 (= 43.6ms / 25.7ms)

OneFlow swin dataloader time: 0.237s (= 47.441s / 200, num_workers=1)
PyTorch swin dataloader time: 0.153s (= 30.622s / 200, num_workers=1)
Relative speed: 0.645 (= 0.153s / 0.237s)

OneFlow swin dataloader time: 0.064s (= 12.804s / 200, num_workers=4)
PyTorch swin dataloader time: 0.041s (= 8.249s / 200, num_workers=4)
Relative speed: 0.644 (= 0.041s / 0.064s)

OneFlow swin dataloader time: 0.037s (= 7.499s / 200, num_workers=8)
PyTorch swin dataloader time: 0.023s (= 4.567s / 200, num_workers=8)
Relative speed: 0.609 (= 0.023s / 0.037s)

❌ OneFlow resnet50 time: 153.2ms (= 15316.6ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 164.2ms (= 16421.5ms / 100, input_shape=[16, 3, 224, 224], ddp, world size=2)
❌ Relative speed: 1.07 (= 164.2ms / 153.2ms)

OneFlow resnet50 time: 93.2ms (= 9321.6ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 106.3ms (= 10627.4ms / 100, input_shape=[8, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.14 (= 106.3ms / 93.2ms)

OneFlow resnet50 time: 61.4ms (= 12283.5ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 79.0ms (= 15790.9ms / 200, input_shape=[4, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.29 (= 79.0ms / 61.4ms)

OneFlow resnet50 time: 42.6ms (= 8511.6ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 71.2ms (= 14244.1ms / 200, input_shape=[2, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 1.67 (= 71.2ms / 42.6ms)

OneFlow resnet50 time: 36.4ms (= 7280.0ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
PyTorch resnet50 time: 85.7ms (= 17148.0ms / 200, input_shape=[1, 3, 224, 224], ddp, world size=2)
✔️ Relative speed: 2.36 (= 85.7ms / 36.4ms)

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

View latest API docs preview at: https://staging.oneflow.info/docs/Oneflow-Inc/oneflow/pr/9632/

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

View latest API docs preview at: https://staging.oneflow.info/docs/Oneflow-Inc/oneflow/pr/9632/

@daquexian daquexian merged commit 9b5a0fb into master Feb 5, 2023
@daquexian daquexian deleted the cpp17 branch February 5, 2023 09:09
mergify bot added a commit that referenced this pull request Feb 7, 2023
[升级 c++17](#9632) 之后,把
`ParseDeviceString` 和 `ParseDeviceNameConf` 从修改指针改为返回多值

Signed-off-by: daquexian <daquexian566@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants