From e3fe814f5a12d3c4d23562a51525ce59036c6ce8 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Mon, 14 Aug 2023 15:14:47 +0200 Subject: [PATCH 01/50] * add benchmark snapshot --- .github/workflows/ci-arm64.yml | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 1abf1a4c8e908..2318f57c9346b 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -10,15 +10,25 @@ on: required: false type: string openssl_windows_arm64_msvc_build: - description: 'OpenSSL Windows Arm64 MSVC' + description: 'OpenSSL Windows Arm64 MSVC build' required: false default: true type: boolean openssl_windows_arm64_clangcl_build: - description: 'OpenSSL Windows Arm64 clang-cl' + description: 'OpenSSL Windows Arm64 clang-cl build' required: false default: true type: boolean + openssl_linux_aarch64_gcc_build: + description: 'OpenSSL Linux AArch64 gcc build' + required: false + default: true + type: boolean + benchmark_snapshot: + description: 'Create benchmark snapshot' + required: false + default: false + type: boolean workflow_call: inputs: branch: @@ -28,6 +38,8 @@ on: jobs: build-openssl-windows-arm64-msvc: + if: ${{ openssl_windows_arm64_msvc_build }} + runs-on: [self-hosted, Windows, ARM64, GCC, D2ps_v5] timeout-minutes: 600 @@ -53,6 +65,8 @@ jobs: type benchmark.txt build-openssl-windows-arm64-clangcl: + if: ${{ openssl_windows_arm64_clangcl_build }} + runs-on: [self-hosted, Windows, ARM64, GCC, D2ps_v5] timeout-minutes: 600 @@ -78,6 +92,8 @@ jobs: type benchmark.txt build-openssl-linux-aarch64-gcc: + if: ${{ openssl_linux_aarch64_gcc_build }} + runs-on: [self-hosted, Linux, ARM64, GCC, D2ps_v5] timeout-minutes: 600 @@ -96,3 +112,11 @@ jobs: make test .github/workflows/scripts/benchmark.sh > benchmark.txt 2>&1 cat benchmark.txt + + - name: Archive openssl-linux-aarch64-gcc-benchmark.txt + uses: actions/upload-artifact@v3 + if: ${{ benchmark_snapshot }} + with: + name: openssl-linux-aarch64-gcc-benchmark.txt + path: benchmark.txt + retention-days: 1 From 7208d6a700fbcd8126399da91715d93fa3e3f474 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Mon, 14 Aug 2023 15:19:53 +0200 Subject: [PATCH 02/50] * fix github action variable names --- .github/workflows/ci-arm64.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 2318f57c9346b..03e3f8451f21c 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -38,7 +38,7 @@ on: jobs: build-openssl-windows-arm64-msvc: - if: ${{ openssl_windows_arm64_msvc_build }} + if: ${{ inputs.openssl_windows_arm64_msvc_build }} runs-on: [self-hosted, Windows, ARM64, GCC, D2ps_v5] timeout-minutes: 600 @@ -65,7 +65,7 @@ jobs: type benchmark.txt build-openssl-windows-arm64-clangcl: - if: ${{ openssl_windows_arm64_clangcl_build }} + if: ${{ inputs.openssl_windows_arm64_clangcl_build }} runs-on: [self-hosted, Windows, ARM64, GCC, D2ps_v5] timeout-minutes: 600 @@ -92,7 +92,7 @@ jobs: type benchmark.txt build-openssl-linux-aarch64-gcc: - if: ${{ openssl_linux_aarch64_gcc_build }} + if: ${{ inputs.openssl_linux_aarch64_gcc_build }} runs-on: [self-hosted, Linux, ARM64, GCC, D2ps_v5] timeout-minutes: 600 @@ -115,7 +115,7 @@ jobs: - name: Archive openssl-linux-aarch64-gcc-benchmark.txt uses: actions/upload-artifact@v3 - if: ${{ benchmark_snapshot }} + if: ${{ inputs.benchmark_snapshot }} with: name: openssl-linux-aarch64-gcc-benchmark.txt path: benchmark.txt From 222f56f919c07df00362a8888a8e500197edc71e Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Mon, 14 Aug 2023 17:45:52 +0200 Subject: [PATCH 03/50] * add benchmark upload for all builds --- .github/workflows/ci-arm64.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 03e3f8451f21c..4e7f47909d7dc 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -64,6 +64,14 @@ jobs: call .github\workflows\scripts\benchmark.bat 2> benchmark.txt type benchmark.txt + - name: Archive build-openssl-windows-arm64-msvc.zip + uses: actions/upload-artifact@v3 + if: ${{ inputs.benchmark_snapshot }} + with: + name: build-openssl-windows-arm64-msvc.zip + path: benchmark.txt + retention-days: 1 + build-openssl-windows-arm64-clangcl: if: ${{ inputs.openssl_windows_arm64_clangcl_build }} @@ -91,6 +99,14 @@ jobs: call .github\workflows\scripts\benchmark.bat 2> benchmark.txt type benchmark.txt + - name: Archive build-openssl-windows-arm64-clangcl.zip + uses: actions/upload-artifact@v3 + if: ${{ inputs.benchmark_snapshot }} + with: + name: build-openssl-windows-arm64-clangcl.zip + path: benchmark.txt + retention-days: 1 + build-openssl-linux-aarch64-gcc: if: ${{ inputs.openssl_linux_aarch64_gcc_build }} @@ -113,10 +129,10 @@ jobs: .github/workflows/scripts/benchmark.sh > benchmark.txt 2>&1 cat benchmark.txt - - name: Archive openssl-linux-aarch64-gcc-benchmark.txt + - name: Archive openssl-linux-aarch64-gcc-benchmark.zip uses: actions/upload-artifact@v3 if: ${{ inputs.benchmark_snapshot }} with: - name: openssl-linux-aarch64-gcc-benchmark.txt + name: openssl-linux-aarch64-gcc-benchmark.zip path: benchmark.txt retention-days: 1 From b4078f524c1b87070a39b1d901557aa9deb11609 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 17 Aug 2023 16:00:26 +0200 Subject: [PATCH 04/50] * increase retention up to 3 days --- .github/workflows/ci-arm64.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 4e7f47909d7dc..4a9e29cdf886e 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -70,7 +70,7 @@ jobs: with: name: build-openssl-windows-arm64-msvc.zip path: benchmark.txt - retention-days: 1 + retention-days: 3 build-openssl-windows-arm64-clangcl: if: ${{ inputs.openssl_windows_arm64_clangcl_build }} @@ -105,7 +105,7 @@ jobs: with: name: build-openssl-windows-arm64-clangcl.zip path: benchmark.txt - retention-days: 1 + retention-days: 3 build-openssl-linux-aarch64-gcc: if: ${{ inputs.openssl_linux_aarch64_gcc_build }} @@ -135,4 +135,4 @@ jobs: with: name: openssl-linux-aarch64-gcc-benchmark.zip path: benchmark.txt - retention-days: 1 + retention-days: 3 From fd74287cf2eb817c3b80abd7904a1c941d06abe7 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Mon, 21 Aug 2023 21:39:09 +0200 Subject: [PATCH 05/50] * add PR for benchmark snapshot --- .github/workflows/ci-arm64.yml | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 4a9e29cdf886e..fd78751ec0d4f 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -136,3 +136,40 @@ jobs: name: openssl-linux-aarch64-gcc-benchmark.zip path: benchmark.txt retention-days: 3 + + create_benchmark_snapshot: + if: ${{ inputs.benchmark_snapshot }} + + runs-on: ubuntu-latest + + steps: + - name: Git checkout + uses: actions/checkout@v3 + with: + branch: ${{ github.event.repository.default_branch }} + path: .github/workflows + +# - uses: actions/download-artifact@v3 +# with: +# name: openssl-linux-aarch64-gcc-benchmark.zip + +# - uses: actions/download-artifact@v3 +# with: +# name: build-openssl-windows-arm64-clangcl.zip + + - name: Create PR for a benchmark snapshot + run: | + touch.exe .github/test.txt + git checkout -b benchmark_snapshot + git add .github/test.txt + git commit -am "-add a benchmark snapshot" + git push origin benchmark_snapshot + PR_RESPONSE=$(curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ + -d '{ + "title": "Add benchmark snapshot", + "body": "", + "head": "benchmark_snapshot", + "base": "${{ github.event.repository.default_branch }}" + }' \ + https://api.github.com/repos/$GITHUB_REPOSITORY/pulls) + echo "$PR_RESPONSE" From e96859708c5a6eaf35f08de780dae09e5149ff31 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Mon, 21 Aug 2023 22:56:24 +0200 Subject: [PATCH 06/50] * fix command to create a test file --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index fd78751ec0d4f..012796f6e12da 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -159,7 +159,7 @@ jobs: - name: Create PR for a benchmark snapshot run: | - touch.exe .github/test.txt + touch .github/test.txt git checkout -b benchmark_snapshot git add .github/test.txt git commit -am "-add a benchmark snapshot" From a7fa5042f8f781483f0250f3fc2519901f44aed8 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 22 Aug 2023 10:04:43 +0200 Subject: [PATCH 07/50] * clone the entire repo to be able to make a commit --- .github/workflows/ci-arm64.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 012796f6e12da..1be8a8d3e93c6 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -147,7 +147,6 @@ jobs: uses: actions/checkout@v3 with: branch: ${{ github.event.repository.default_branch }} - path: .github/workflows # - uses: actions/download-artifact@v3 # with: From 0932aae97d631af002df59fe709d3e6c1ebb4008 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 22 Aug 2023 16:01:40 +0200 Subject: [PATCH 08/50] * set up github actor for applying changes --- .github/workflows/ci-arm64.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 1be8a8d3e93c6..85649ed9d1395 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -158,6 +158,8 @@ jobs: - name: Create PR for a benchmark snapshot run: | + git config --global user.name "$GITHUB_ACTOR" + git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" touch .github/test.txt git checkout -b benchmark_snapshot git add .github/test.txt From 74ef85d676e5ac990ca1512e3e782c0b4adea2c1 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 12:38:50 +0200 Subject: [PATCH 09/50] * fix multiline command --- .github/workflows/ci-arm64.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 85649ed9d1395..475e8b3b7bbb0 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -166,11 +166,11 @@ jobs: git commit -am "-add a benchmark snapshot" git push origin benchmark_snapshot PR_RESPONSE=$(curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ - -d '{ - "title": "Add benchmark snapshot", - "body": "", - "head": "benchmark_snapshot", - "base": "${{ github.event.repository.default_branch }}" - }' \ - https://api.github.com/repos/$GITHUB_REPOSITORY/pulls) + -d '{ \ + "title": "Add benchmark snapshot", \ + "body": "", \ + "head": "benchmark_snapshot", \ + "base": "${{ github.event.repository.default_branch }}" \ + }' \ + https://api.github.com/repos/$GITHUB_REPOSITORY/pulls) echo "$PR_RESPONSE" From 6ed79f262c9dba74e478ff8e5858160d89aefe68 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 12:46:57 +0200 Subject: [PATCH 10/50] * overwrite existing benchmark_snapshot branch --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 475e8b3b7bbb0..d930460d58724 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -164,7 +164,7 @@ jobs: git checkout -b benchmark_snapshot git add .github/test.txt git commit -am "-add a benchmark snapshot" - git push origin benchmark_snapshot + git push --force origin benchmark_snapshot PR_RESPONSE=$(curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ -d '{ \ "title": "Add benchmark snapshot", \ From 570ba9b9b947c15de337cba61104a80641e926e7 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 12:58:06 +0200 Subject: [PATCH 11/50] * fix checkout option name * change commit description --- .github/workflows/ci-arm64.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index d930460d58724..8171c3e5eca71 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -146,7 +146,7 @@ jobs: - name: Git checkout uses: actions/checkout@v3 with: - branch: ${{ github.event.repository.default_branch }} + ref: ${{ github.event.repository.default_branch }} # - uses: actions/download-artifact@v3 # with: @@ -163,7 +163,7 @@ jobs: touch .github/test.txt git checkout -b benchmark_snapshot git add .github/test.txt - git commit -am "-add a benchmark snapshot" + git commit -am "* add a benchmark snapshot" git push --force origin benchmark_snapshot PR_RESPONSE=$(curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ -d '{ \ From bd6c9586bd047013108592c7bc2c3dbc18cdfa59 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 13:09:36 +0200 Subject: [PATCH 12/50] * fix autorization header for creating PR --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 8171c3e5eca71..b24f684e68f14 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -165,7 +165,7 @@ jobs: git add .github/test.txt git commit -am "* add a benchmark snapshot" git push --force origin benchmark_snapshot - PR_RESPONSE=$(curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ + PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer $GITHUB_TOKEN" \ -d '{ \ "title": "Add benchmark snapshot", \ "body": "", \ From 93da7018b7fb8a6642e8238acb9786bc1d278aba Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 13:29:25 +0200 Subject: [PATCH 13/50] * change a way to use github token --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index b24f684e68f14..814725ee78da8 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -165,7 +165,7 @@ jobs: git add .github/test.txt git commit -am "* add a benchmark snapshot" git push --force origin benchmark_snapshot - PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer $GITHUB_TOKEN" \ + PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ -d '{ \ "title": "Add benchmark snapshot", \ "body": "", \ From 80edef42d399396a9ca32639cedc1605c1c63bc9 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 13:42:54 +0200 Subject: [PATCH 14/50] * fix payload for creating PR --- .github/workflows/ci-arm64.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 814725ee78da8..16c4c3c900f16 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -166,11 +166,11 @@ jobs: git commit -am "* add a benchmark snapshot" git push --force origin benchmark_snapshot PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ - -d '{ \ - "title": "Add benchmark snapshot", \ - "body": "", \ - "head": "benchmark_snapshot", \ - "base": "${{ github.event.repository.default_branch }}" \ + -d '{ + "title": "Add benchmark snapshot", + "body": "", + "head": "benchmark_snapshot", + "base": "${{ github.event.repository.default_branch }}" }' \ https://api.github.com/repos/$GITHUB_REPOSITORY/pulls) echo "$PR_RESPONSE" From 8af1ca1a9daa6864cbd902232d7ff0f076ba9d62 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 19:55:52 +0200 Subject: [PATCH 15/50] * add benchmark snapshot data and image --- .github/workflows/ci-arm64.yml | 50 +++++++++++-------- .github/workflows/scripts/benchmark_cmp.sh | 12 +++++ .../workflows/scripts/benchmark_snapshot.sh | 14 ++++++ 3 files changed, 54 insertions(+), 22 deletions(-) create mode 100644 .github/workflows/scripts/benchmark_cmp.sh create mode 100644 .github/workflows/scripts/benchmark_snapshot.sh diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 16c4c3c900f16..53de110c59cd0 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -61,15 +61,15 @@ jobs: perl Configure VC-WIN64-ARM nmake nmake test - call .github\workflows\scripts\benchmark.bat 2> benchmark.txt - type benchmark.txt + call .github\workflows\scripts\benchmark.bat 2> benchmark_arm64_msvc.txt + type benchmark_arm64_msvc.txt - - name: Archive build-openssl-windows-arm64-msvc.zip + - name: Archive openssl_windows_arm64_msvc_benchmark.zip uses: actions/upload-artifact@v3 if: ${{ inputs.benchmark_snapshot }} with: - name: build-openssl-windows-arm64-msvc.zip - path: benchmark.txt + name: openssl_windows_arm64_msvc_benchmark.zip + path: benchmark_arm64_msvc.txt retention-days: 3 build-openssl-windows-arm64-clangcl: @@ -96,15 +96,15 @@ jobs: perl Configure VC-CLANG-WIN64-CLANGASM-ARM nmake nmake test - call .github\workflows\scripts\benchmark.bat 2> benchmark.txt - type benchmark.txt + call .github\workflows\scripts\benchmark.bat 2> benchmark_arm64_clangcl.txt + type benchmark_clangcl.txt - - name: Archive build-openssl-windows-arm64-clangcl.zip + - name: Archive openssl_windows_arm64_clangcl_benchmark.zip uses: actions/upload-artifact@v3 if: ${{ inputs.benchmark_snapshot }} with: - name: build-openssl-windows-arm64-clangcl.zip - path: benchmark.txt + name: openssl_windows_arm64_clangcl_benchmark.zip + path: benchmark_arm64_clangcl.txt retention-days: 3 build-openssl-linux-aarch64-gcc: @@ -126,15 +126,15 @@ jobs: ./Configure make make test - .github/workflows/scripts/benchmark.sh > benchmark.txt 2>&1 - cat benchmark.txt + .github/workflows/scripts/benchmark.sh > benchmark_aarch64_gcc.txt 2>&1 + cat benchmark_aarch64_gcc.txt - - name: Archive openssl-linux-aarch64-gcc-benchmark.zip + - name: Archive openssl_linux_aarch64_gcc_benchmark.zip uses: actions/upload-artifact@v3 if: ${{ inputs.benchmark_snapshot }} with: - name: openssl-linux-aarch64-gcc-benchmark.zip - path: benchmark.txt + name: openssl_linux_aarch64_gcc_benchmark.zip + path: benchmark_aarch64_gcc.txt retention-days: 3 create_benchmark_snapshot: @@ -148,9 +148,9 @@ jobs: with: ref: ${{ github.event.repository.default_branch }} -# - uses: actions/download-artifact@v3 -# with: -# name: openssl-linux-aarch64-gcc-benchmark.zip + - uses: actions/download-artifact@v3 + with: + name: openssl_linux_aarch64_gcc_benchmark.zip # - uses: actions/download-artifact@v3 # with: @@ -160,17 +160,23 @@ jobs: run: | git config --global user.name "$GITHUB_ACTOR" git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" - touch .github/test.txt + unzip openssl_linux_aarch64_gcc_benchmark.zip + .github/workflows/scripts/benchmark_snapshot.sh + benchmark_asset=$(date +".assets/benchmark_snapshot_%Y-%m-%d_%H_%M_%S.png") + mv benchmark_snapshot.png $benchmark_asset + git add $benchmark_asset + git commit -am "* add a benchmark image" + git push git checkout -b benchmark_snapshot - git add .github/test.txt + git add .github/workflows/data git commit -am "* add a benchmark snapshot" git push --force origin benchmark_snapshot PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ -d '{ "title": "Add benchmark snapshot", - "body": "", + "body": "![image](https://raw.githubusercontent.com/Windows-on-ARM-Experiments/openssl/assets/$benchmark_asset)", "head": "benchmark_snapshot", "base": "${{ github.event.repository.default_branch }}" }' \ - https://api.github.com/repos/$GITHUB_REPOSITORY/pulls) + https://api.github.com/repos/$GITHUB_REPOSITORY/pull/7) echo "$PR_RESPONSE" diff --git a/.github/workflows/scripts/benchmark_cmp.sh b/.github/workflows/scripts/benchmark_cmp.sh new file mode 100644 index 0000000000000..547ab09964f0a --- /dev/null +++ b/.github/workflows/scripts/benchmark_cmp.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +first_benchmark=$1 +second_benchmark=$2 + +cat $first_benchmark | grep "^Doing" | sed -E "s/ +$//" > b1.txt +cat $second_benchmark | grep "^Doing" | sed -E "s/ +$//" > b2.txt +paste b1.txt b2.txt | awk '{match($0, /(^[^:]+)/, g1); match($0, /\t+(Doing[^:]+)/, g2); if (g1[1] != g2[1]) exit -1}' \ + || { echo "Benchmark test sets are not identical"; rm b1.txt b2.txt; exit -1; } +cat b2.txt | sed -E "s/^[^:]+: /\/\t/" | sed -E "s/ .* / /" > b2_1.txt +paste b1.txt b2_1.txt | awk '{match($0, /: ([0-9]+)/, g1); match($0, /([\.0-9]+)s\t\//, g2); match($0, /\/\t([0-9]+) /, g3); match($0, /([\.0-9]+)s$/, g4); printf "%f %s\n", (g3[1] / g4[1]) / (g1[1] / g2[1]), $0}' +rm b1.txt b2.txt b2_1.txt diff --git a/.github/workflows/scripts/benchmark_snapshot.sh b/.github/workflows/scripts/benchmark_snapshot.sh new file mode 100644 index 0000000000000..2ec37581d3d2f --- /dev/null +++ b/.github/workflows/scripts/benchmark_snapshot.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +[ ! -d .github/workflows/data/benchmark_snapshot ] && mkdir -p .github/workflows/data/benchmark_snapshot +branch=$(git symbolic-ref --short HEAD) +benchmark_snapshot=$(date +".github/workflows/data/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S.txt") +.github/workflows/scripts/benchmark_cmp.sh benchmark_aarch64_gcc.txt benchmark_aarch64_gcc.txt > $benchmark_snapshot || exit -1 + +chart_payload="cht=bvg&chs=500x375&chtt=Perfromance%20ratio%20comparision&chma=30,30,30,30&chdlp=t&chco=4d89f9,c6d9fd&chbh=r,0,0&chxt=x,x,y&chxl=1:|Benchmark%20test%20%23&chxp=1,50&chds=a&chxs=2N*p&chdl=AArch64%20/%20Arm64%20Windows&chxr=0,0,247,48&chd=t:" +chart_payload+=$(cat $benchmark_snapshot \ + | sort -n -r -k 1 \ + | awk '{val = $1; if (val >= 1) val -= 1; else val = -1/val + 1; printf "%f,", val}') +chart_payload="${chart_payload%?}" + +curl -X POST -d "$chart_payload" https://chart.googleapis.com/chart > benchmark_snapshot.png From c7b320d0489419fc3dc4256bd85748466e2a4b8f Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 20:01:41 +0200 Subject: [PATCH 16/50] * fix workflow syntax --- .github/workflows/ci-arm64.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 53de110c59cd0..33d526fac7bef 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -148,9 +148,10 @@ jobs: with: ref: ${{ github.event.repository.default_branch }} - - uses: actions/download-artifact@v3 - with: - name: openssl_linux_aarch64_gcc_benchmark.zip + - name: Dowload openssl_linux_aarch64_gcc_benchmark.zip + uses: actions/download-artifact@v3 + with: + name: openssl_linux_aarch64_gcc_benchmark.zip # - uses: actions/download-artifact@v3 # with: From 0eef030a487fb12cbff4ed17fe706b9fc7e1b31d Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 21:58:50 +0200 Subject: [PATCH 17/50] * add execute permission --- .github/workflows/scripts/benchmark_cmp.sh | 0 .github/workflows/scripts/benchmark_snapshot.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .github/workflows/scripts/benchmark_cmp.sh mode change 100644 => 100755 .github/workflows/scripts/benchmark_snapshot.sh diff --git a/.github/workflows/scripts/benchmark_cmp.sh b/.github/workflows/scripts/benchmark_cmp.sh old mode 100644 new mode 100755 diff --git a/.github/workflows/scripts/benchmark_snapshot.sh b/.github/workflows/scripts/benchmark_snapshot.sh old mode 100644 new mode 100755 From ba3e9adb02e13765e478ec4222604523067034c7 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 22:02:53 +0200 Subject: [PATCH 18/50] * fix workflow --- .github/workflows/ci-arm64.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 33d526fac7bef..8be2407849375 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -139,14 +139,13 @@ jobs: create_benchmark_snapshot: if: ${{ inputs.benchmark_snapshot }} + needs: [build-openssl-windows-arm64-clangcl, build-openssl-linux-aarch64-gcc] runs-on: ubuntu-latest steps: - name: Git checkout uses: actions/checkout@v3 - with: - ref: ${{ github.event.repository.default_branch }} - name: Dowload openssl_linux_aarch64_gcc_benchmark.zip uses: actions/download-artifact@v3 @@ -161,10 +160,14 @@ jobs: run: | git config --global user.name "$GITHUB_ACTOR" git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" - unzip openssl_linux_aarch64_gcc_benchmark.zip + git fetch origin ${{ github.event.repository.default_branch }} + git checkout origin/${{ github.event.repository.default_branch }} -- .github/workflows/scripts .github/workflows/scripts/benchmark_snapshot.sh benchmark_asset=$(date +".assets/benchmark_snapshot_%Y-%m-%d_%H_%M_%S.png") + [ ! -d .assets ] && mkdir .assets mv benchmark_snapshot.png $benchmark_asset + git restore .github/workflows/scripts + git checkout assets git add $benchmark_asset git commit -am "* add a benchmark image" git push From 31f4a945e352dc6ec8352d24efe009c38a726819 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 23 Aug 2023 23:28:53 +0200 Subject: [PATCH 19/50] * disable one job dependency --- .github/workflows/ci-arm64.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 8be2407849375..c6937a53a20ea 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -137,9 +137,9 @@ jobs: path: benchmark_aarch64_gcc.txt retention-days: 3 - create_benchmark_snapshot: + create-benchmark-snapshot: if: ${{ inputs.benchmark_snapshot }} - needs: [build-openssl-windows-arm64-clangcl, build-openssl-linux-aarch64-gcc] + needs: [build-openssl-linux-aarch64-gcc] runs-on: ubuntu-latest From e948d39cc24232daaa3d136eff6572bccf90514e Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 08:44:37 +0200 Subject: [PATCH 20/50] * trace the executable commands --- .github/workflows/ci-arm64.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index c6937a53a20ea..c96f75174ac5a 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -158,6 +158,7 @@ jobs: - name: Create PR for a benchmark snapshot run: | + set -x git config --global user.name "$GITHUB_ACTOR" git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" git fetch origin ${{ github.event.repository.default_branch }} From 0a3ba560f8f190d02034aa6a462c2c154f51651f Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 10:17:27 +0200 Subject: [PATCH 21/50] * disable general tracing and add a few debugging command --- .github/workflows/ci-arm64.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index c96f75174ac5a..80e0f3b06e41d 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -158,7 +158,6 @@ jobs: - name: Create PR for a benchmark snapshot run: | - set -x git config --global user.name "$GITHUB_ACTOR" git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" git fetch origin ${{ github.event.repository.default_branch }} @@ -167,9 +166,11 @@ jobs: benchmark_asset=$(date +".assets/benchmark_snapshot_%Y-%m-%d_%H_%M_%S.png") [ ! -d .assets ] && mkdir .assets mv benchmark_snapshot.png $benchmark_asset + git status git restore .github/workflows/scripts git checkout assets git add $benchmark_asset + git status git commit -am "* add a benchmark image" git push git checkout -b benchmark_snapshot From 2d861f87c32d462f63a3a57a5c09d7b5320a1fe6 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 11:43:31 +0200 Subject: [PATCH 22/50] * fix assets branch fetching --- .github/workflows/ci-arm64.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 80e0f3b06e41d..9f90dc9797722 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -168,11 +168,13 @@ jobs: mv benchmark_snapshot.png $benchmark_asset git status git restore .github/workflows/scripts - git checkout assets + git fetch origin assets + git checkout origin/assets git add $benchmark_asset git status git commit -am "* add a benchmark image" git push + git checkout dev git checkout -b benchmark_snapshot git add .github/workflows/data git commit -am "* add a benchmark snapshot" From 56d2a1a75577f714a190bbaa8252467fccfc100f Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 12:57:52 +0200 Subject: [PATCH 23/50] * change assets branch name --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 9f90dc9797722..e52864bfe5f2e 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -169,7 +169,7 @@ jobs: git status git restore .github/workflows/scripts git fetch origin assets - git checkout origin/assets + git checkout assets git add $benchmark_asset git status git commit -am "* add a benchmark image" From 4abce0c9bc6d7266978a300d585abb0e3260f734 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 14:42:19 +0200 Subject: [PATCH 24/50] * fix checkout command * add temporary data for testing --- .github/workflows/ci-arm64.yml | 12 +- benchmark_aarch64_gcc.txt | 449 +++++++++++++++++++++++++++++++++ 2 files changed, 455 insertions(+), 6 deletions(-) create mode 100644 benchmark_aarch64_gcc.txt diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index e52864bfe5f2e..b70b14225976d 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -139,7 +139,7 @@ jobs: create-benchmark-snapshot: if: ${{ inputs.benchmark_snapshot }} - needs: [build-openssl-linux-aarch64-gcc] +# needs: [build-openssl-linux-aarch64-gcc] runs-on: ubuntu-latest @@ -147,10 +147,10 @@ jobs: - name: Git checkout uses: actions/checkout@v3 - - name: Dowload openssl_linux_aarch64_gcc_benchmark.zip - uses: actions/download-artifact@v3 - with: - name: openssl_linux_aarch64_gcc_benchmark.zip +# - name: Dowload openssl_linux_aarch64_gcc_benchmark.zip +# uses: actions/download-artifact@v3 +# with: +# name: openssl_linux_aarch64_gcc_benchmark.zip # - uses: actions/download-artifact@v3 # with: @@ -174,7 +174,7 @@ jobs: git status git commit -am "* add a benchmark image" git push - git checkout dev + git checkout ${{ github.event.repository.default_branch }} -- git checkout -b benchmark_snapshot git add .github/workflows/data git commit -am "* add a benchmark snapshot" diff --git a/benchmark_aarch64_gcc.txt b/benchmark_aarch64_gcc.txt new file mode 100644 index 0000000000000..5e64099f47bbc --- /dev/null +++ b/benchmark_aarch64_gcc.txt @@ -0,0 +1,449 @@ +Doing md5 ops for 3s on 16 size blocks: 10912053 md5 ops in 2.99s +Doing md5 ops for 3s on 64 size blocks: 8117294 md5 ops in 3.00s +Doing md5 ops for 3s on 256 size blocks: 4435749 md5 ops in 3.00s +Doing md5 ops for 3s on 1024 size blocks: 1578565 md5 ops in 3.00s +Doing md5 ops for 3s on 8192 size blocks: 225282 md5 ops in 3.00s +Doing md5 ops for 3s on 16384 size blocks: 113745 md5 ops in 3.00s +Doing sha1 ops for 3s on 16 size blocks: 14267281 sha1 ops in 3.00s +Doing sha1 ops for 3s on 64 size blocks: 12716534 sha1 ops in 3.00s +Doing sha1 ops for 3s on 256 size blocks: 8837862 sha1 ops in 3.00s +Doing sha1 ops for 3s on 1024 size blocks: 3954883 sha1 ops in 3.00s +Doing sha1 ops for 3s on 8192 size blocks: 645595 sha1 ops in 3.00s +Doing sha1 ops for 3s on 16384 size blocks: 330001 sha1 ops in 3.00s +Doing sha256 ops for 3s on 16 size blocks: 14465950 sha256 ops in 3.00s +Doing sha256 ops for 3s on 64 size blocks: 13055592 sha256 ops in 3.00s +Doing sha256 ops for 3s on 256 size blocks: 9111130 sha256 ops in 3.00s +Doing sha256 ops for 3s on 1024 size blocks: 4102814 sha256 ops in 3.00s +Doing sha256 ops for 3s on 8192 size blocks: 671025 sha256 ops in 3.00s +Doing sha256 ops for 3s on 16384 size blocks: 343094 sha256 ops in 3.00s +Doing sha512 ops for 3s on 16 size blocks: 6736951 sha512 ops in 3.00s +Doing sha512 ops for 3s on 64 size blocks: 6747678 sha512 ops in 3.00s +Doing sha512 ops for 3s on 256 size blocks: 3133492 sha512 ops in 3.00s +Doing sha512 ops for 3s on 1024 size blocks: 1200082 sha512 ops in 3.00s +Doing sha512 ops for 3s on 8192 size blocks: 177471 sha512 ops in 3.00s +Doing sha512 ops for 3s on 16384 size blocks: 89984 sha512 ops in 3.00s +Doing rmd160 ops for 3s on 16 size blocks: 8352938 rmd160 ops in 2.99s +Doing rmd160 ops for 3s on 64 size blocks: 5662418 rmd160 ops in 3.00s +Doing rmd160 ops for 3s on 256 size blocks: 2840566 rmd160 ops in 3.00s +Doing rmd160 ops for 3s on 1024 size blocks: 949636 rmd160 ops in 3.00s +Doing rmd160 ops for 3s on 8192 size blocks: 131563 rmd160 ops in 3.00s +Doing rmd160 ops for 3s on 16384 size blocks: 66320 rmd160 ops in 3.00s +Doing hmac(md5) ops for 3s on 16 size blocks: 6928359 hmac(md5) ops in 3.00s +Doing hmac(md5) ops for 3s on 64 size blocks: 5723023 hmac(md5) ops in 3.00s +Doing hmac(md5) ops for 3s on 256 size blocks: 3605766 hmac(md5) ops in 3.00s +Doing hmac(md5) ops for 3s on 1024 size blocks: 1459531 hmac(md5) ops in 3.00s +Doing hmac(md5) ops for 3s on 8192 size blocks: 222493 hmac(md5) ops in 3.00s +Doing hmac(md5) ops for 3s on 16384 size blocks: 113078 hmac(md5) ops in 3.00s +Doing des-ede3 ops for 3s on 16 size blocks: 5535545 des-ede3 ops in 3.00s +Doing des-ede3 ops for 3s on 64 size blocks: 1414885 des-ede3 ops in 3.00s +Doing des-ede3 ops for 3s on 256 size blocks: 356199 des-ede3 ops in 3.00s +Doing des-ede3 ops for 3s on 1024 size blocks: 89194 des-ede3 ops in 3.00s +Doing des-ede3 ops for 3s on 8192 size blocks: 11157 des-ede3 ops in 3.00s +Doing des-ede3 ops for 3s on 16384 size blocks: 5581 des-ede3 ops in 3.00s +Doing aes-128-cbc ops for 3s on 16 size blocks: 175444017 aes-128-cbc ops in 3.00s +Doing aes-128-cbc ops for 3s on 64 size blocks: 83674547 aes-128-cbc ops in 3.00s +Doing aes-128-cbc ops for 3s on 256 size blocks: 25765251 aes-128-cbc ops in 3.00s +Doing aes-128-cbc ops for 3s on 1024 size blocks: 6844971 aes-128-cbc ops in 3.00s +Doing aes-128-cbc ops for 3s on 8192 size blocks: 873725 aes-128-cbc ops in 3.00s +Doing aes-128-cbc ops for 3s on 16384 size blocks: 437837 aes-128-cbc ops in 3.00s +Doing aes-192-cbc ops for 3s on 16 size blocks: 164844391 aes-192-cbc ops in 3.00s +Doing aes-192-cbc ops for 3s on 64 size blocks: 73097267 aes-192-cbc ops in 3.00s +Doing aes-192-cbc ops for 3s on 256 size blocks: 21779695 aes-192-cbc ops in 3.00s +Doing aes-192-cbc ops for 3s on 1024 size blocks: 5692886 aes-192-cbc ops in 3.00s +Doing aes-192-cbc ops for 3s on 8192 size blocks: 728771 aes-192-cbc ops in 3.00s +Doing aes-192-cbc ops for 3s on 16384 size blocks: 364995 aes-192-cbc ops in 2.99s +Doing aes-256-cbc ops for 3s on 16 size blocks: 157709463 aes-256-cbc ops in 3.00s +Doing aes-256-cbc ops for 3s on 64 size blocks: 64500048 aes-256-cbc ops in 3.00s +Doing aes-256-cbc ops for 3s on 256 size blocks: 18822279 aes-256-cbc ops in 3.00s +Doing aes-256-cbc ops for 3s on 1024 size blocks: 4924346 aes-256-cbc ops in 3.00s +Doing aes-256-cbc ops for 3s on 8192 size blocks: 624962 aes-256-cbc ops in 3.00s +Doing aes-256-cbc ops for 3s on 16384 size blocks: 312961 aes-256-cbc ops in 3.00s +Doing camellia-128-cbc ops for 3s on 16 size blocks: 23822088 camellia-128-cbc ops in 3.00s +Doing camellia-128-cbc ops for 3s on 64 size blocks: 6285100 camellia-128-cbc ops in 3.00s +Doing camellia-128-cbc ops for 3s on 256 size blocks: 1593318 camellia-128-cbc ops in 3.00s +Doing camellia-128-cbc ops for 3s on 1024 size blocks: 400446 camellia-128-cbc ops in 3.00s +Doing camellia-128-cbc ops for 3s on 8192 size blocks: 50147 camellia-128-cbc ops in 3.00s +Doing camellia-128-cbc ops for 3s on 16384 size blocks: 25077 camellia-128-cbc ops in 3.00s +Doing camellia-192-cbc ops for 3s on 16 size blocks: 18837647 camellia-192-cbc ops in 3.00s +Doing camellia-192-cbc ops for 3s on 64 size blocks: 4923334 camellia-192-cbc ops in 3.00s +Doing camellia-192-cbc ops for 3s on 256 size blocks: 1244311 camellia-192-cbc ops in 3.00s +Doing camellia-192-cbc ops for 3s on 1024 size blocks: 312379 camellia-192-cbc ops in 3.00s +Doing camellia-192-cbc ops for 3s on 8192 size blocks: 39098 camellia-192-cbc ops in 3.00s +Doing camellia-192-cbc ops for 3s on 16384 size blocks: 19554 camellia-192-cbc ops in 3.00s +Doing camellia-256-cbc ops for 3s on 16 size blocks: 18842909 camellia-256-cbc ops in 3.00s +Doing camellia-256-cbc ops for 3s on 64 size blocks: 4922935 camellia-256-cbc ops in 3.00s +Doing camellia-256-cbc ops for 3s on 256 size blocks: 1244318 camellia-256-cbc ops in 3.00s +Doing camellia-256-cbc ops for 3s on 1024 size blocks: 312353 camellia-256-cbc ops in 3.00s +Doing camellia-256-cbc ops for 3s on 8192 size blocks: 39099 camellia-256-cbc ops in 2.99s +Doing camellia-256-cbc ops for 3s on 16384 size blocks: 19553 camellia-256-cbc ops in 3.00s +Doing ghash ops for 3s on 16 size blocks: 128501351 ghash ops in 3.00s +Doing ghash ops for 3s on 64 size blocks: 107369007 ghash ops in 3.00s +Doing ghash ops for 3s on 256 size blocks: 51054897 ghash ops in 3.00s +Doing ghash ops for 3s on 1024 size blocks: 16693499 ghash ops in 3.00s +Doing ghash ops for 3s on 8192 size blocks: 2282312 ghash ops in 3.00s +Doing ghash ops for 3s on 16384 size blocks: 1143164 ghash ops in 3.00s +Doing rand ops for 3s on 16 size blocks: 4645485 rand ops in 2.33s +Doing rand ops for 3s on 64 size blocks: 4542041 rand ops in 2.40s +Doing rand ops for 3s on 256 size blocks: 4173229 rand ops in 2.40s +Doing rand ops for 3s on 1024 size blocks: 3048542 rand ops in 2.57s +Doing rand ops for 3s on 8192 size blocks: 876497 rand ops in 2.88s +Doing rand ops for 3s on 16384 size blocks: 482831 rand ops in 2.91s +Doing 512 bits private rsa sign ops for 10s: 144289 512 bits private RSA sign ops in 10.00s +Doing 512 bits public rsa verify ops for 10s: 1682339 512 bits public RSA verify ops in 10.00s +Doing 512 bits private rsa encrypt ops for 10s: 1468643 512 bits public RSA encrypt ops in 9.76s +Doing 512 bits private rsa decrypt ops for 10s: 132722 512 bits private RSA decrypt ops in 9.99s +Doing 1024 bits private rsa sign ops for 10s: 24743 1024 bits private RSA sign ops in 10.00s +Doing 1024 bits public rsa verify ops for 10s: 482270 1024 bits public RSA verify ops in 9.99s +Doing 1024 bits private rsa encrypt ops for 10s: 458447 1024 bits public RSA encrypt ops in 9.90s +Doing 1024 bits private rsa decrypt ops for 10s: 24320 1024 bits private RSA decrypt ops in 10.00s +Doing 2048 bits private rsa sign ops for 10s: 3520 2048 bits private RSA sign ops in 10.00s +Doing 2048 bits public rsa verify ops for 10s: 128460 2048 bits public RSA verify ops in 10.00s +Doing 2048 bits private rsa encrypt ops for 10s: 126032 2048 bits public RSA encrypt ops in 9.95s +Doing 2048 bits private rsa decrypt ops for 10s: 3508 2048 bits private RSA decrypt ops in 10.00s +Doing 3072 bits private rsa sign ops for 10s: 1132 3072 bits private RSA sign ops in 9.99s +Doing 3072 bits public rsa verify ops for 10s: 68813 3072 bits public RSA verify ops in 10.00s +Doing 3072 bits private rsa encrypt ops for 10s: 67946 3072 bits public RSA encrypt ops in 9.99s +Doing 3072 bits private rsa decrypt ops for 10s: 1131 3072 bits private RSA decrypt ops in 10.01s +Doing 4096 bits private rsa sign ops for 10s: 496 4096 bits private RSA sign ops in 10.01s +Doing 4096 bits public rsa verify ops for 10s: 40349 4096 bits public RSA verify ops in 10.00s +Doing 4096 bits private rsa encrypt ops for 10s: 39978 4096 bits public RSA encrypt ops in 9.98s +Doing 4096 bits private rsa decrypt ops for 10s: 495 4096 bits private RSA decrypt ops in 10.01s +Doing 7680 bits private rsa sign ops for 10s: 97 7680 bits private RSA sign ops in 10.03s +Doing 7680 bits public rsa verify ops for 10s: 12181 7680 bits public RSA verify ops in 9.99s +Doing 7680 bits private rsa encrypt ops for 10s: 12125 7680 bits public RSA encrypt ops in 9.98s +Doing 7680 bits private rsa decrypt ops for 10s: 97 7680 bits private RSA decrypt ops in 10.03s +Doing 15360 bits private rsa sign ops for 10s: 14 15360 bits private RSA sign ops in 10.59s +Doing 15360 bits public rsa verify ops for 10s: 3153 15360 bits public RSA verify ops in 10.00s +Doing 15360 bits private rsa encrypt ops for 10s: 3147 15360 bits public RSA encrypt ops in 10.00s +Doing 15360 bits private rsa decrypt ops for 10s: 14 15360 bits private RSA decrypt ops in 10.59s +Doing 1024 bits sign dsa ops for 10s: 32782 1024 bits DSA sign ops in 9.99s +Doing 1024 bits verify dsa ops for 10s: 38143 1024 bits DSA verify ops in 10.00s +Doing 2048 bits sign dsa ops for 10s: 9496 2048 bits DSA sign ops in 9.99s +Doing 2048 bits verify dsa ops for 10s: 10190 2048 bits DSA verify ops in 10.00s +Doing 160 bits sign ecdsa ops for 10s: 36299 160 bits ECDSA sign ops in 9.99s +Doing 160 bits verify ecdsa ops for 10s: 39019 160 bits ECDSA verify ops in 9.99s +Doing 192 bits sign ecdsa ops for 10s: 29829 192 bits ECDSA sign ops in 9.98s +Doing 192 bits verify ecdsa ops for 10s: 32241 192 bits ECDSA verify ops in 9.98s +Doing 224 bits sign ecdsa ops for 10s: 18506 224 bits ECDSA sign ops in 9.99s +Doing 224 bits verify ecdsa ops for 10s: 21291 224 bits ECDSA verify ops in 9.99s +Doing 256 bits sign ecdsa ops for 10s: 226719 256 bits ECDSA sign ops in 9.94s +Doing 256 bits verify ecdsa ops for 10s: 66572 256 bits ECDSA verify ops in 10.00s +Doing 384 bits sign ecdsa ops for 10s: 5452 384 bits ECDSA sign ops in 9.99s +Doing 384 bits verify ecdsa ops for 10s: 7047 384 bits ECDSA verify ops in 10.00s +Doing 521 bits sign ecdsa ops for 10s: 1984 521 bits ECDSA sign ops in 9.99s +Doing 521 bits verify ecdsa ops for 10s: 2669 521 bits ECDSA verify ops in 10.00s +Doing 163 bits sign ecdsa ops for 10s: 25809 163 bits ECDSA sign ops in 9.97s +Doing 163 bits verify ecdsa ops for 10s: 13080 163 bits ECDSA verify ops in 10.00s +Doing 233 bits sign ecdsa ops for 10s: 17149 233 bits ECDSA sign ops in 9.99s +Doing 233 bits verify ecdsa ops for 10s: 8740 233 bits ECDSA verify ops in 9.98s +Doing 283 bits sign ecdsa ops for 10s: 8213 283 bits ECDSA sign ops in 9.99s +Doing 283 bits verify ecdsa ops for 10s: 4181 283 bits ECDSA verify ops in 9.99s +Doing 409 bits sign ecdsa ops for 10s: 3837 409 bits ECDSA sign ops in 10.00s +Doing 409 bits verify ecdsa ops for 10s: 1965 409 bits ECDSA verify ops in 10.00s +Doing 571 bits sign ecdsa ops for 10s: 1821 571 bits ECDSA sign ops in 9.99s +Doing 571 bits verify ecdsa ops for 10s: 932 571 bits ECDSA verify ops in 10.01s +Doing 163 bits sign ecdsa ops for 10s: 24469 163 bits ECDSA sign ops in 9.98s +Doing 163 bits verify ecdsa ops for 10s: 12407 163 bits ECDSA verify ops in 9.98s +Doing 233 bits sign ecdsa ops for 10s: 16275 233 bits ECDSA sign ops in 9.99s +Doing 233 bits verify ecdsa ops for 10s: 8290 233 bits ECDSA verify ops in 9.99s +Doing 283 bits sign ecdsa ops for 10s: 7578 283 bits ECDSA sign ops in 9.99s +Doing 283 bits verify ecdsa ops for 10s: 3854 283 bits ECDSA verify ops in 9.99s +Doing 409 bits sign ecdsa ops for 10s: 3486 409 bits ECDSA sign ops in 10.00s +Doing 409 bits verify ecdsa ops for 10s: 1779 409 bits ECDSA verify ops in 9.99s +Doing 571 bits sign ecdsa ops for 10s: 1630 571 bits ECDSA sign ops in 10.00s +Doing 571 bits verify ecdsa ops for 10s: 834 571 bits ECDSA verify ops in 10.00s +Doing 256 bits sign ecdsa ops for 10s: 16553 256 bits ECDSA sign ops in 9.99s +Doing 256 bits verify ecdsa ops for 10s: 17893 256 bits ECDSA verify ops in 9.99s +Doing 256 bits sign ecdsa ops for 10s: 16554 256 bits ECDSA sign ops in 9.98s +Doing 256 bits verify ecdsa ops for 10s: 19066 256 bits ECDSA verify ops in 9.99s +Doing 384 bits sign ecdsa ops for 10s: 5456 384 bits ECDSA sign ops in 9.99s +Doing 384 bits verify ecdsa ops for 10s: 6483 384 bits ECDSA verify ops in 10.00s +Doing 384 bits sign ecdsa ops for 10s: 5494 384 bits ECDSA sign ops in 10.00s +Doing 384 bits verify ecdsa ops for 10s: 7062 384 bits ECDSA verify ops in 10.00s +Doing 512 bits sign ecdsa ops for 10s: 2709 512 bits ECDSA sign ops in 10.00s +Doing 512 bits verify ecdsa ops for 10s: 3418 512 bits ECDSA verify ops in 10.00s +Doing 512 bits sign ecdsa ops for 10s: 2723 512 bits ECDSA sign ops in 10.00s +Doing 512 bits verify ecdsa ops for 10s: 3734 512 bits ECDSA verify ops in 10.00s +Doing 160 bits ecdh ops for 10s: 38433 160-bits ECDH ops in 9.99s +Doing 192 bits ecdh ops for 10s: 31532 192-bits ECDH ops in 9.99s +Doing 224 bits ecdh ops for 10s: 19511 224-bits ECDH ops in 10.00s +Doing 256 bits ecdh ops for 10s: 86295 256-bits ECDH ops in 10.00s +Doing 384 bits ecdh ops for 10s: 5743 384-bits ECDH ops in 10.00s +Doing 521 bits ecdh ops for 10s: 2093 521-bits ECDH ops in 10.00s +Doing 163 bits ecdh ops for 10s: 26858 163-bits ECDH ops in 9.97s +Doing 233 bits ecdh ops for 10s: 18003 233-bits ECDH ops in 9.99s +Doing 283 bits ecdh ops for 10s: 8589 283-bits ECDH ops in 9.99s +Doing 409 bits ecdh ops for 10s: 4052 409-bits ECDH ops in 10.00s +Doing 571 bits ecdh ops for 10s: 1916 571-bits ECDH ops in 10.01s +Doing 163 bits ecdh ops for 10s: 25474 163-bits ECDH ops in 9.99s +Doing 233 bits ecdh ops for 10s: 17051 233-bits ECDH ops in 10.00s +Doing 283 bits ecdh ops for 10s: 7893 283-bits ECDH ops in 9.99s +Doing 409 bits ecdh ops for 10s: 3647 409-bits ECDH ops in 10.00s +Doing 571 bits ecdh ops for 10s: 1712 571-bits ECDH ops in 9.99s +Doing 256 bits ecdh ops for 10s: 17430 256-bits ECDH ops in 9.97s +Doing 256 bits ecdh ops for 10s: 17433 256-bits ECDH ops in 9.98s +Doing 384 bits ecdh ops for 10s: 5746 384-bits ECDH ops in 10.00s +Doing 384 bits ecdh ops for 10s: 5787 384-bits ECDH ops in 10.00s +Doing 512 bits ecdh ops for 10s: 2840 512-bits ECDH ops in 10.00s +Doing 512 bits ecdh ops for 10s: 2856 512-bits ECDH ops in 10.00s +Doing 253 bits ecdh ops for 10s: 75754 253-bits ECDH ops in 10.00s +Doing 448 bits ecdh ops for 10s: 21060 448-bits ECDH ops in 10.00s +Doing 253 bits sign Ed25519 ops for 10s: 280576 253 bits Ed25519 sign ops in 10.00s +Doing 253 bits verify Ed25519 ops for 10s: 88064 253 bits Ed25519 verify ops in 10.00s +Doing 456 bits sign Ed448 ops for 10s: 26887 456 bits Ed448 sign ops in 10.00s +Doing 456 bits verify Ed448 ops for 10s: 19076 456 bits Ed448 verify ops in 10.00s +Doing 256 bits sign CurveSM2 ops for 10s: 16463 256 bits CurveSM2 sign ops in 9.99s +Doing 256 bits verify CurveSM2 ops for 10s: 19791 256 bits CurveSM2 verify ops in 10.00s +Doing 2048 bits ffdh ops for 10s: 7526 2048-bits FFDH ops in 9.99s +Doing 3072 bits ffdh ops for 10s: 3311 3072-bits FFDH ops in 9.99s +Doing 4096 bits ffdh ops for 10s: 1633 4096-bits FFDH ops in 10.00s +Doing 6144 bits ffdh ops for 10s: 759 6144-bits FFDH ops in 10.01s +Doing 8192 bits ffdh ops for 10s: 376 8192-bits FFDH ops in 10.00s +Doing rsa512 keygen ops for 10s: 1886 rsa512 KEM keygen ops in 9.90s +Doing rsa512 encaps ops for 10s: 1324186 rsa512 KEM encaps ops in 9.76s +Doing rsa512 decaps ops for 10s: 143983 rsa512 KEM decaps ops in 10.00s +Doing rsa1024 keygen ops for 10s: 266 rsa1024 KEM keygen ops in 9.98s +Doing rsa1024 encaps ops for 10s: 440391 rsa1024 KEM encaps ops in 9.91s +Doing rsa1024 decaps ops for 10s: 24732 rsa1024 KEM decaps ops in 10.00s +Doing rsa2048 keygen ops for 10s: 50 rsa2048 KEM keygen ops in 10.22s +Doing rsa2048 encaps ops for 10s: 124856 rsa2048 KEM encaps ops in 9.98s +Doing rsa2048 decaps ops for 10s: 3519 rsa2048 KEM decaps ops in 10.00s +Doing rsa3072 keygen ops for 10s: 13 rsa3072 KEM keygen ops in 10.47s +Doing rsa3072 encaps ops for 10s: 67320 rsa3072 KEM encaps ops in 9.99s +Doing rsa3072 decaps ops for 10s: 1132 rsa3072 KEM decaps ops in 9.99s +Doing rsa4096 keygen ops for 10s: 5 rsa4096 KEM keygen ops in 15.11s +Doing rsa4096 encaps ops for 10s: 39840 rsa4096 KEM encaps ops in 9.99s +Doing rsa4096 decaps ops for 10s: 496 rsa4096 KEM decaps ops in 10.02s +Doing rsa7680 keygen ops for 10s: 2 rsa7680 KEM keygen ops in 11.54s +Doing rsa7680 encaps ops for 10s: 12098 rsa7680 KEM encaps ops in 9.99s +Doing rsa7680 decaps ops for 10s: 97 rsa7680 KEM decaps ops in 10.03s +Doing rsa15360 keygen ops for 10s: 1 rsa15360 KEM keygen ops in 300.11s +Doing rsa15360 encaps ops for 10s: 3141 rsa15360 KEM encaps ops in 10.00s +Doing rsa15360 decaps ops for 10s: 14 rsa15360 KEM decaps ops in 10.60s +Doing ECP-256 keygen ops for 10s: 437294 ECP-256 KEM keygen ops in 9.90s +Doing ECP-256 encaps ops for 10s: 25958 ECP-256 KEM encaps ops in 9.98s +Doing ECP-256 decaps ops for 10s: 28058 ECP-256 KEM decaps ops in 10.00s +Doing ECP-384 keygen ops for 10s: 5721 ECP-384 KEM keygen ops in 10.00s +Doing ECP-384 encaps ops for 10s: 1828 ECP-384 KEM encaps ops in 10.00s +Doing ECP-384 decaps ops for 10s: 2685 ECP-384 KEM decaps ops in 10.00s +Doing ECP-521 keygen ops for 10s: 2089 ECP-521 KEM keygen ops in 10.00s +Doing ECP-521 encaps ops for 10s: 686 ECP-521 KEM encaps ops in 10.01s +Doing ECP-521 decaps ops for 10s: 1020 ECP-521 KEM decaps ops in 10.01s +Doing X25519 keygen ops for 10s: 270125 X25519 KEM keygen ops in 9.95s +Doing X25519 encaps ops for 10s: 57351 X25519 KEM encaps ops in 10.00s +Doing X25519 decaps ops for 10s: 73749 X25519 KEM decaps ops in 10.00s +Doing X448 keygen ops for 10s: 27117 X448 KEM keygen ops in 9.99s +Doing X448 encaps ops for 10s: 11572 X448 KEM encaps ops in 10.00s +Doing X448 decaps ops for 10s: 20787 X448 KEM decaps ops in 10.00s +Doing rsa512 keygen ops for 10s: 1884 rsa512 signature keygen ops in 9.92s +Doing rsa512 signs ops for 10s: 144266 rsa512 signature sign ops in 10.00s +Doing rsa512 verify ops for 10s: 1682209 rsa512 signature verify ops in 10.00s +Doing rsa1024 keygen ops for 10s: 271 rsa1024 signature keygen ops in 10.00s +Doing rsa1024 signs ops for 10s: 24741 rsa1024 signature sign ops in 9.99s +Doing rsa1024 verify ops for 10s: 482095 rsa1024 signature verify ops in 10.00s +Doing rsa2048 keygen ops for 10s: 50 rsa2048 signature keygen ops in 10.05s +Doing rsa2048 signs ops for 10s: 3518 rsa2048 signature sign ops in 9.99s +Doing rsa2048 verify ops for 10s: 128454 rsa2048 signature verify ops in 10.00s +Doing rsa3072 keygen ops for 10s: 11 rsa3072 signature keygen ops in 10.06s +Doing rsa3072 signs ops for 10s: 1132 rsa3072 signature sign ops in 10.00s +Doing rsa3072 verify ops for 10s: 68810 rsa3072 signature verify ops in 10.00s +Doing rsa4096 keygen ops for 10s: 5 rsa4096 signature keygen ops in 13.33s +Doing rsa4096 signs ops for 10s: 496 rsa4096 signature sign ops in 10.02s +Doing rsa4096 verify ops for 10s: 40336 rsa4096 signature verify ops in 10.00s +Doing rsa7680 keygen ops for 10s: 1 rsa7680 signature keygen ops in 19.28s +Doing rsa7680 signs ops for 10s: 97 rsa7680 signature sign ops in 10.03s +Doing rsa7680 verify ops for 10s: 12179 rsa7680 signature verify ops in 10.00s +Doing rsa15360 keygen ops for 10s: 1 rsa15360 signature keygen ops in 409.28s +Doing rsa15360 signs ops for 10s: 14 rsa15360 signature sign ops in 10.59s +Doing rsa15360 verify ops for 10s: 3153 rsa15360 signature verify ops in 10.00s +Doing dsa1024 keygen ops for 10s: 15254 dsa1024 signature keygen ops in 9.99s +Doing dsa1024 signs ops for 10s: 24490 dsa1024 signature sign ops in 9.99s +Doing dsa1024 verify ops for 10s: 33583 dsa1024 signature verify ops in 10.00s +Doing dsa2048 keygen ops for 10s: 4099 dsa2048 signature keygen ops in 10.00s +Doing dsa2048 signs ops for 10s: 7183 dsa2048 signature sign ops in 9.99s +Doing dsa2048 verify ops for 10s: 9384 dsa2048 signature verify ops in 10.00s +version: 3.2.0-dev +built on: Thu Aug 24 11:01:14 2023 UTC +options: bn(64,64) +compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG +CPUINFO: OPENSSL_armcap=0xbd +The 'numbers' are in 1000s of bytes per second processed. +type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes +md5 58392.26k 173168.94k 378517.25k 538816.85k 615170.05k 621199.36k +sha1 76092.17k 271286.06k 754164.22k 1349933.40k 1762904.75k 1802245.46k +rmd160 44698.00k 120798.25k 242394.97k 324142.42k 359254.70k 362195.63k +sha256 77151.73k 278519.30k 777483.09k 1400427.18k 1832345.60k 1873750.70k +sha512 35930.41k 143950.46k 267391.32k 409627.99k 484614.14k 491432.62k +hmac(md5) 36951.25k 122091.16k 307692.03k 498186.58k 607554.22k 617556.65k +des-ede3 29522.91k 30184.21k 30395.65k 30444.89k 30466.05k 30479.70k +aes-128-cbc 935701.42k 1785057.00k 2198634.75k 2336416.77k 2385851.73k 2391173.80k +aes-192-cbc 879170.09k 1559408.36k 1858533.97k 1943171.75k 1990030.68k 2000026.11k +aes-256-cbc 841117.14k 1376001.02k 1606167.81k 1680843.43k 1706562.90k 1709184.34k +camellia-128-cbc 127051.14k 134082.13k 135963.14k 136685.57k 136934.74k 136953.86k +camellia-192-cbc 100467.45k 105031.13k 106181.21k 106625.37k 106763.61k 106790.91k +camellia-256-cbc 100495.51k 105022.61k 106181.80k 106616.49k 107123.41k 106785.45k +ghash 685340.54k 2290538.82k 4356684.54k 5698047.66k 6232233.30k 6243199.66k +rand 31900.33k 121121.09k 445144.43k 1214671.99k 2493147.02k 2718454.67k + sign verify encrypt decrypt sign/s verify/s encr./s decr./s +rsa 512 bits 0.000069s 0.000006s 0.000007s 0.000075s 14428.9 168233.9 150475.7 13285.5 +rsa 1024 bits 0.000404s 0.000021s 0.000022s 0.000411s 2474.3 48275.3 46307.8 2432.0 +rsa 2048 bits 0.002841s 0.000078s 0.000079s 0.002851s 352.0 12846.0 12666.5 350.8 +rsa 3072 bits 0.008825s 0.000145s 0.000147s 0.008851s 113.3 6881.3 6801.4 113.0 +rsa 4096 bits 0.020181s 0.000248s 0.000250s 0.020222s 49.6 4034.9 4005.8 49.5 +rsa 7680 bits 0.103402s 0.000820s 0.000823s 0.103402s 9.7 1219.3 1214.9 9.7 +rsa 15360 bits 0.756429s 0.003172s 0.003178s 0.756429s 1.3 315.3 314.7 1.3 + sign verify sign/s verify/s +dsa 1024 bits 0.000305s 0.000262s 3281.5 3814.3 +dsa 2048 bits 0.001052s 0.000981s 950.6 1019.0 + sign verify sign/s verify/s + 160 bits ecdsa (secp160r1) 0.0003s 0.0003s 3633.5 3905.8 + 192 bits ecdsa (nistp192) 0.0003s 0.0003s 2988.9 3230.6 + 224 bits ecdsa (nistp224) 0.0005s 0.0005s 1852.5 2131.2 + 256 bits ecdsa (nistp256) 0.0000s 0.0002s 22808.8 6657.2 + 384 bits ecdsa (nistp384) 0.0018s 0.0014s 545.7 704.7 + 521 bits ecdsa (nistp521) 0.0050s 0.0037s 198.6 266.9 + 163 bits ecdsa (nistk163) 0.0004s 0.0008s 2588.7 1308.0 + 233 bits ecdsa (nistk233) 0.0006s 0.0011s 1716.6 875.8 + 283 bits ecdsa (nistk283) 0.0012s 0.0024s 822.1 418.5 + 409 bits ecdsa (nistk409) 0.0026s 0.0051s 383.7 196.5 + 571 bits ecdsa (nistk571) 0.0055s 0.0107s 182.3 93.1 + 163 bits ecdsa (nistb163) 0.0004s 0.0008s 2451.8 1243.2 + 233 bits ecdsa (nistb233) 0.0006s 0.0012s 1629.1 829.8 + 283 bits ecdsa (nistb283) 0.0013s 0.0026s 758.6 385.8 + 409 bits ecdsa (nistb409) 0.0029s 0.0056s 348.6 178.1 + 571 bits ecdsa (nistb571) 0.0061s 0.0120s 163.0 83.4 + 256 bits ecdsa (brainpoolP256r1) 0.0006s 0.0006s 1657.0 1791.1 + 256 bits ecdsa (brainpoolP256t1) 0.0006s 0.0005s 1658.7 1908.5 + 384 bits ecdsa (brainpoolP384r1) 0.0018s 0.0015s 546.1 648.3 + 384 bits ecdsa (brainpoolP384t1) 0.0018s 0.0014s 549.4 706.2 + 512 bits ecdsa (brainpoolP512r1) 0.0037s 0.0029s 270.9 341.8 + 512 bits ecdsa (brainpoolP512t1) 0.0037s 0.0027s 272.3 373.4 + op op/s + 160 bits ecdh (secp160r1) 0.0003s 3847.1 + 192 bits ecdh (nistp192) 0.0003s 3156.4 + 224 bits ecdh (nistp224) 0.0005s 1951.1 + 256 bits ecdh (nistp256) 0.0001s 8629.5 + 384 bits ecdh (nistp384) 0.0017s 574.3 + 521 bits ecdh (nistp521) 0.0048s 209.3 + 163 bits ecdh (nistk163) 0.0004s 2693.9 + 233 bits ecdh (nistk233) 0.0006s 1802.1 + 283 bits ecdh (nistk283) 0.0012s 859.8 + 409 bits ecdh (nistk409) 0.0025s 405.2 + 571 bits ecdh (nistk571) 0.0052s 191.4 + 163 bits ecdh (nistb163) 0.0004s 2549.9 + 233 bits ecdh (nistb233) 0.0006s 1705.1 + 283 bits ecdh (nistb283) 0.0013s 790.1 + 409 bits ecdh (nistb409) 0.0027s 364.7 + 571 bits ecdh (nistb571) 0.0058s 171.4 + 256 bits ecdh (brainpoolP256r1) 0.0006s 1748.2 + 256 bits ecdh (brainpoolP256t1) 0.0006s 1746.8 + 384 bits ecdh (brainpoolP384r1) 0.0017s 574.6 + 384 bits ecdh (brainpoolP384t1) 0.0017s 578.7 + 512 bits ecdh (brainpoolP512r1) 0.0035s 284.0 + 512 bits ecdh (brainpoolP512t1) 0.0035s 285.6 + 253 bits ecdh (X25519) 0.0001s 7575.4 + 448 bits ecdh (X448) 0.0005s 2106.0 + sign verify sign/s verify/s + 253 bits EdDSA (Ed25519) 0.0000s 0.0001s 28057.6 8806.4 + 456 bits EdDSA (Ed448) 0.0004s 0.0005s 2688.7 1907.6 + sign verify sign/s verify/s + 256 bits SM2 (CurveSM2) 0.0006s 0.0005s 1647.9 1979.1 + op op/s +2048 bits ffdh 0.0013s 753.4 +3072 bits ffdh 0.0030s 331.4 +4096 bits ffdh 0.0061s 163.3 +6144 bits ffdh 0.0132s 75.8 +8192 bits ffdh 0.0266s 37.6 + keygen encaps decaps keygens/s encaps/s decaps/s + rsa512 0.005249s 0.000007s 0.000069s 190.5 135674.8 14398.3 + rsa1024 0.037519s 0.000023s 0.000404s 26.7 44439.1 2473.2 + rsa2048 0.204400s 0.000080s 0.002842s 4.9 12510.6 351.9 + rsa3072 0.805385s 0.000148s 0.008825s 1.2 6738.7 113.3 + rsa4096 3.022000s 0.000251s 0.020202s 0.3 3988.0 49.5 + rsa7680 5.770000s 0.000826s 0.103402s 0.2 1211.0 9.7 + rsa15360 300.110000s 0.003184s 0.757143s 0.0 314.1 1.3 + ECP-256 0.000023s 0.000384s 0.000356s 44171.1 2601.0 2805.8 + ECP-384 0.001748s 0.005470s 0.003724s 572.1 182.8 268.5 + ECP-521 0.004787s 0.014592s 0.009814s 208.9 68.5 101.9 + X25519 0.000037s 0.000174s 0.000136s 27148.2 5735.1 7374.9 + X448 0.000368s 0.000864s 0.000481s 2714.4 1157.2 2078.7 + keygen signs verify keygens/s sign/s verify/s + rsa512 0.005265s 0.000069s 0.000006s 189.9 14426.6 168220.9 + rsa1024 0.036900s 0.000404s 0.000021s 27.1 2476.6 48209.5 + rsa2048 0.201000s 0.002840s 0.000078s 5.0 352.2 12845.4 + rsa3072 0.914545s 0.008834s 0.000145s 1.1 113.2 6881.0 + rsa4096 2.666000s 0.020202s 0.000248s 0.4 49.5 4033.6 + rsa7680 19.280000s 0.103402s 0.000821s 0.1 9.7 1217.9 + rsa15360 409.280000s 0.756429s 0.003172s 0.0 1.3 315.3 + dsa1024 0.000655s 0.000408s 0.000298s 1526.9 2451.5 3358.3 + dsa2048 0.002440s 0.001391s 0.001066s 409.9 719.0 938.4 +Doing sm3 ops for 3s on 16 size blocks: 7269229 sm3 ops in 2.99s +Doing sm3 ops for 3s on 64 size blocks: 4693193 sm3 ops in 3.00s +Doing sm3 ops for 3s on 256 size blocks: 2267289 sm3 ops in 3.00s +Doing sm3 ops for 3s on 1024 size blocks: 739294 sm3 ops in 3.00s +Doing sm3 ops for 3s on 8192 size blocks: 101343 sm3 ops in 3.00s +Doing sm3 ops for 3s on 16384 size blocks: 51041 sm3 ops in 3.00s +version: 3.2.0-dev +built on: Thu Aug 24 11:01:14 2023 UTC +options: bn(64,64) +compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG +CPUINFO: OPENSSL_armcap=0xbd +The 'numbers' are in 1000s of bytes per second processed. +type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes +sm3 38898.88k 100121.45k 193475.33k 252345.69k 276733.95k 278751.91k +Doing SM4-CBC ops for 3s on 16 size blocks: 9901740 SM4-CBC ops in 2.99s +Doing SM4-CBC ops for 3s on 64 size blocks: 2558408 SM4-CBC ops in 3.00s +Doing SM4-CBC ops for 3s on 256 size blocks: 644241 SM4-CBC ops in 3.00s +Doing SM4-CBC ops for 3s on 1024 size blocks: 161163 SM4-CBC ops in 3.00s +Doing SM4-CBC ops for 3s on 8192 size blocks: 20177 SM4-CBC ops in 3.00s +Doing SM4-CBC ops for 3s on 16384 size blocks: 10089 SM4-CBC ops in 3.00s +version: 3.2.0-dev +built on: Thu Aug 24 11:01:14 2023 UTC +options: bn(64,64) +compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG +CPUINFO: OPENSSL_armcap=0xbd +The 'numbers' are in 1000s of bytes per second processed. +type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes +SM4-CBC 52985.90k 54579.37k 54975.23k 55010.30k 55096.66k 55099.39k +Doing AES-128-GCM ops for 3s on 16 size blocks: 85099353 AES-128-GCM ops in 3.00s +Doing AES-128-GCM ops for 3s on 64 size blocks: 59402645 AES-128-GCM ops in 3.00s +Doing AES-128-GCM ops for 3s on 256 size blocks: 24038343 AES-128-GCM ops in 3.00s +Doing AES-128-GCM ops for 3s on 1024 size blocks: 7769452 AES-128-GCM ops in 3.00s +Doing AES-128-GCM ops for 3s on 8192 size blocks: 1083830 AES-128-GCM ops in 3.00s +Doing AES-128-GCM ops for 3s on 16384 size blocks: 546297 AES-128-GCM ops in 3.00s +version: 3.2.0-dev +built on: Thu Aug 24 11:01:14 2023 UTC +options: bn(64,64) +compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG +CPUINFO: OPENSSL_armcap=0xbd +The 'numbers' are in 1000s of bytes per second processed. +type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes +AES-128-GCM 453863.22k 1267256.43k 2051271.94k 2651972.95k 2959578.45k 2983510.02k +Doing AES-192-GCM ops for 3s on 16 size blocks: 82345350 AES-192-GCM ops in 3.00s +Doing AES-192-GCM ops for 3s on 64 size blocks: 56151353 AES-192-GCM ops in 3.00s +Doing AES-192-GCM ops for 3s on 256 size blocks: 22240905 AES-192-GCM ops in 3.00s +Doing AES-192-GCM ops for 3s on 1024 size blocks: 7135140 AES-192-GCM ops in 3.00s +Doing AES-192-GCM ops for 3s on 8192 size blocks: 992183 AES-192-GCM ops in 3.00s +Doing AES-192-GCM ops for 3s on 16384 size blocks: 499732 AES-192-GCM ops in 3.00s +version: 3.2.0-dev +built on: Thu Aug 24 11:01:14 2023 UTC +options: bn(64,64) +compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG +CPUINFO: OPENSSL_armcap=0xbd +The 'numbers' are in 1000s of bytes per second processed. +type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes +AES-192-GCM 439175.20k 1197895.53k 1897890.56k 2435461.12k 2709321.05k 2729203.03k +Doing AES-256-GCM ops for 3s on 16 size blocks: 77931801 AES-256-GCM ops in 2.99s +Doing AES-256-GCM ops for 3s on 64 size blocks: 51856988 AES-256-GCM ops in 3.00s +Doing AES-256-GCM ops for 3s on 256 size blocks: 20377147 AES-256-GCM ops in 3.00s +Doing AES-256-GCM ops for 3s on 1024 size blocks: 6405414 AES-256-GCM ops in 3.00s +Doing AES-256-GCM ops for 3s on 8192 size blocks: 876718 AES-256-GCM ops in 3.00s +Doing AES-256-GCM ops for 3s on 16384 size blocks: 440930 AES-256-GCM ops in 3.00s +version: 3.2.0-dev +built on: Thu Aug 24 11:01:14 2023 UTC +options: bn(64,64) +compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG +CPUINFO: OPENSSL_armcap=0xbd +The 'numbers' are in 1000s of bytes per second processed. +type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes +AES-256-GCM 417026.36k 1106282.41k 1738849.88k 2186381.31k 2394024.62k 2408065.71k From 649f91b7a217828c6cc10ec1fd55c5a9febd6330 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 15:02:39 +0200 Subject: [PATCH 25/50] * change benchmark_snapshot folder location --- .github/workflows/ci-arm64.yml | 2 +- .github/workflows/scripts/benchmark_snapshot.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index b70b14225976d..91f7948a48c5f 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -176,7 +176,7 @@ jobs: git push git checkout ${{ github.event.repository.default_branch }} -- git checkout -b benchmark_snapshot - git add .github/workflows/data + git add .github/benchmark_snapshot git commit -am "* add a benchmark snapshot" git push --force origin benchmark_snapshot PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ diff --git a/.github/workflows/scripts/benchmark_snapshot.sh b/.github/workflows/scripts/benchmark_snapshot.sh index 2ec37581d3d2f..ee93edc9bb3ef 100755 --- a/.github/workflows/scripts/benchmark_snapshot.sh +++ b/.github/workflows/scripts/benchmark_snapshot.sh @@ -1,8 +1,8 @@ #!/bin/bash -[ ! -d .github/workflows/data/benchmark_snapshot ] && mkdir -p .github/workflows/data/benchmark_snapshot +[ ! -d .github/benchmark_snapshot ] && mkdir -p .github/benchmark_snapshot branch=$(git symbolic-ref --short HEAD) -benchmark_snapshot=$(date +".github/workflows/data/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S.txt") +benchmark_snapshot=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S.txt") .github/workflows/scripts/benchmark_cmp.sh benchmark_aarch64_gcc.txt benchmark_aarch64_gcc.txt > $benchmark_snapshot || exit -1 chart_payload="cht=bvg&chs=500x375&chtt=Perfromance%20ratio%20comparision&chma=30,30,30,30&chdlp=t&chco=4d89f9,c6d9fd&chbh=r,0,0&chxt=x,x,y&chxl=1:|Benchmark%20test%20%23&chxp=1,50&chds=a&chxs=2N*p&chdl=AArch64%20/%20Arm64%20Windows&chxr=0,0,247,48&chd=t:" From 37820c44ace14d6ce110b27e25a17f14109f8e6f Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 15:11:17 +0200 Subject: [PATCH 26/50] * fix "create pull request" call --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 91f7948a48c5f..9df1d5000af41 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -186,5 +186,5 @@ jobs: "head": "benchmark_snapshot", "base": "${{ github.event.repository.default_branch }}" }' \ - https://api.github.com/repos/$GITHUB_REPOSITORY/pull/7) + https://api.github.com/repos/$GITHUB_REPOSITORY/pulls/7) echo "$PR_RESPONSE" From 8f4260fb1f0e5384a0807de24ba4ee569904e8b3 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 15:15:36 +0200 Subject: [PATCH 27/50] * fix reference to benchmark image --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 9df1d5000af41..310238977666f 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -182,7 +182,7 @@ jobs: PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ -d '{ "title": "Add benchmark snapshot", - "body": "![image](https://raw.githubusercontent.com/Windows-on-ARM-Experiments/openssl/assets/$benchmark_asset)", + "body": "![image](https://raw.githubusercontent.com/Windows-on-ARM-Experiments/openssl/assets/' $benchmark_asset ')", "head": "benchmark_snapshot", "base": "${{ github.event.repository.default_branch }}" }' \ From 7b458b5d04cc53807bde4b97ceefc733146cc2c7 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 15:19:57 +0200 Subject: [PATCH 28/50] * remove whitespacing --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 310238977666f..dc1f3a96a9d94 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -182,7 +182,7 @@ jobs: PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ -d '{ "title": "Add benchmark snapshot", - "body": "![image](https://raw.githubusercontent.com/Windows-on-ARM-Experiments/openssl/assets/' $benchmark_asset ')", + "body": "![image](https://raw.githubusercontent.com/Windows-on-ARM-Experiments/openssl/assets/'$benchmark_asset')", "head": "benchmark_snapshot", "base": "${{ github.event.repository.default_branch }}" }' \ From 925f555310018355f40a0d00e36d419441e16308 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 15:36:12 +0200 Subject: [PATCH 29/50] * use benchmark data from workflow run --- .github/workflows/ci-arm64.yml | 23 +++++++++---------- .../workflows/scripts/benchmark_snapshot.sh | 8 +++---- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index dc1f3a96a9d94..2ac26f9876316 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -139,7 +139,7 @@ jobs: create-benchmark-snapshot: if: ${{ inputs.benchmark_snapshot }} -# needs: [build-openssl-linux-aarch64-gcc] + needs: [build-openssl-windows-arm64-clangcl, build-openssl-linux-aarch64-gcc] runs-on: ubuntu-latest @@ -147,14 +147,15 @@ jobs: - name: Git checkout uses: actions/checkout@v3 -# - name: Dowload openssl_linux_aarch64_gcc_benchmark.zip -# uses: actions/download-artifact@v3 -# with: -# name: openssl_linux_aarch64_gcc_benchmark.zip + - name: Dowload openssl_linux_aarch64_gcc_benchmark.zip + uses: actions/download-artifact@v3 + with: + name: openssl_linux_aarch64_gcc_benchmark.zip -# - uses: actions/download-artifact@v3 -# with: -# name: build-openssl-windows-arm64-clangcl.zip + - name: Dowload build-openssl-windows-arm64-clangcl.zip + uses: actions/download-artifact@v3 + with: + name: build-openssl-windows-arm64-clangcl.zip - name: Create PR for a benchmark snapshot run: | @@ -163,15 +164,13 @@ jobs: git fetch origin ${{ github.event.repository.default_branch }} git checkout origin/${{ github.event.repository.default_branch }} -- .github/workflows/scripts .github/workflows/scripts/benchmark_snapshot.sh - benchmark_asset=$(date +".assets/benchmark_snapshot_%Y-%m-%d_%H_%M_%S.png") + benchmark_asset=$(date +".assets/benchmark_snapshot_%Y-%m-%d_%H_%M_%S_gcc_vs_clangcl.png") [ ! -d .assets ] && mkdir .assets - mv benchmark_snapshot.png $benchmark_asset - git status + mv benchmark_snapshot_gcc_vs_clangcl.png $benchmark_asset git restore .github/workflows/scripts git fetch origin assets git checkout assets git add $benchmark_asset - git status git commit -am "* add a benchmark image" git push git checkout ${{ github.event.repository.default_branch }} -- diff --git a/.github/workflows/scripts/benchmark_snapshot.sh b/.github/workflows/scripts/benchmark_snapshot.sh index ee93edc9bb3ef..ce457104fa557 100755 --- a/.github/workflows/scripts/benchmark_snapshot.sh +++ b/.github/workflows/scripts/benchmark_snapshot.sh @@ -2,13 +2,13 @@ [ ! -d .github/benchmark_snapshot ] && mkdir -p .github/benchmark_snapshot branch=$(git symbolic-ref --short HEAD) -benchmark_snapshot=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S.txt") -.github/workflows/scripts/benchmark_cmp.sh benchmark_aarch64_gcc.txt benchmark_aarch64_gcc.txt > $benchmark_snapshot || exit -1 +benchmark_snapshot=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S_gcc_vs_clang.txt") +.github/workflows/scripts/benchmark_cmp.sh benchmark_arm64_clangcl.txt benchmark_aarch64_gcc.txt > $benchmark_snapshot || exit -1 -chart_payload="cht=bvg&chs=500x375&chtt=Perfromance%20ratio%20comparision&chma=30,30,30,30&chdlp=t&chco=4d89f9,c6d9fd&chbh=r,0,0&chxt=x,x,y&chxl=1:|Benchmark%20test%20%23&chxp=1,50&chds=a&chxs=2N*p&chdl=AArch64%20/%20Arm64%20Windows&chxr=0,0,247,48&chd=t:" +chart_payload="cht=bvg&chs=500x375&chtt=Perfromance%20ratio%20comparison&chma=30,30,30,30&chdlp=t&chco=4d89f9,c6d9fd&chbh=r,0,0&chxt=x,x,y&chxl=1:|Benchmark%20test%20%23&chxp=1,50&chds=a&chxs=2N*p&chdl=AArch64%20/%20Arm64%20Windows&chxr=0,0,247,48&chd=t:" chart_payload+=$(cat $benchmark_snapshot \ | sort -n -r -k 1 \ | awk '{val = $1; if (val >= 1) val -= 1; else val = -1/val + 1; printf "%f,", val}') chart_payload="${chart_payload%?}" -curl -X POST -d "$chart_payload" https://chart.googleapis.com/chart > benchmark_snapshot.png +curl -X POST -d "$chart_payload" https://chart.googleapis.com/chart > benchmark_snapshot_gcc_vs_clangcl.png From 6ee19e16a37c238688ede50df864debda8228d70 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 24 Aug 2023 20:30:34 +0200 Subject: [PATCH 30/50] * fix filename for clangcl benchmark --- .github/workflows/ci-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 2ac26f9876316..3f315560bd17e 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -97,7 +97,7 @@ jobs: nmake nmake test call .github\workflows\scripts\benchmark.bat 2> benchmark_arm64_clangcl.txt - type benchmark_clangcl.txt + type benchmark_arm64_clangcl.txt - name: Archive openssl_windows_arm64_clangcl_benchmark.zip uses: actions/upload-artifact@v3 From 0440ecacd8ca8f72e3e1a83c80f099b7a56e3c8d Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Fri, 25 Aug 2023 08:25:34 +0200 Subject: [PATCH 31/50] * fix artifact name for downloading --- .github/workflows/ci-arm64.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 3f315560bd17e..e3b625155ad33 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -152,10 +152,10 @@ jobs: with: name: openssl_linux_aarch64_gcc_benchmark.zip - - name: Dowload build-openssl-windows-arm64-clangcl.zip + - name: Dowload openssl_windows_arm64_clangcl.zip uses: actions/download-artifact@v3 with: - name: build-openssl-windows-arm64-clangcl.zip + name: openssl_windows_arm64_clangcl.zip - name: Create PR for a benchmark snapshot run: | From 99a289d81677000bae86adca6a09e8bdd2d673bf Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Fri, 25 Aug 2023 13:47:09 +0200 Subject: [PATCH 32/50] * fix benchmark artifact name --- .github/workflows/ci-arm64.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index e3b625155ad33..7bea52a1a2cb5 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -152,10 +152,10 @@ jobs: with: name: openssl_linux_aarch64_gcc_benchmark.zip - - name: Dowload openssl_windows_arm64_clangcl.zip + - name: Dowload openssl_windows_arm64_clangcl_benchmark.zip uses: actions/download-artifact@v3 with: - name: openssl_windows_arm64_clangcl.zip + name: openssl_windows_arm64_clangcl_benchmark.zip - name: Create PR for a benchmark snapshot run: | From 12040787516afbbbcbe981a5bed41eedf00d4d32 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Fri, 25 Aug 2023 18:58:18 +0200 Subject: [PATCH 33/50] * delete testing data --- benchmark_aarch64_gcc.txt | 449 -------------------------------------- 1 file changed, 449 deletions(-) delete mode 100644 benchmark_aarch64_gcc.txt diff --git a/benchmark_aarch64_gcc.txt b/benchmark_aarch64_gcc.txt deleted file mode 100644 index 5e64099f47bbc..0000000000000 --- a/benchmark_aarch64_gcc.txt +++ /dev/null @@ -1,449 +0,0 @@ -Doing md5 ops for 3s on 16 size blocks: 10912053 md5 ops in 2.99s -Doing md5 ops for 3s on 64 size blocks: 8117294 md5 ops in 3.00s -Doing md5 ops for 3s on 256 size blocks: 4435749 md5 ops in 3.00s -Doing md5 ops for 3s on 1024 size blocks: 1578565 md5 ops in 3.00s -Doing md5 ops for 3s on 8192 size blocks: 225282 md5 ops in 3.00s -Doing md5 ops for 3s on 16384 size blocks: 113745 md5 ops in 3.00s -Doing sha1 ops for 3s on 16 size blocks: 14267281 sha1 ops in 3.00s -Doing sha1 ops for 3s on 64 size blocks: 12716534 sha1 ops in 3.00s -Doing sha1 ops for 3s on 256 size blocks: 8837862 sha1 ops in 3.00s -Doing sha1 ops for 3s on 1024 size blocks: 3954883 sha1 ops in 3.00s -Doing sha1 ops for 3s on 8192 size blocks: 645595 sha1 ops in 3.00s -Doing sha1 ops for 3s on 16384 size blocks: 330001 sha1 ops in 3.00s -Doing sha256 ops for 3s on 16 size blocks: 14465950 sha256 ops in 3.00s -Doing sha256 ops for 3s on 64 size blocks: 13055592 sha256 ops in 3.00s -Doing sha256 ops for 3s on 256 size blocks: 9111130 sha256 ops in 3.00s -Doing sha256 ops for 3s on 1024 size blocks: 4102814 sha256 ops in 3.00s -Doing sha256 ops for 3s on 8192 size blocks: 671025 sha256 ops in 3.00s -Doing sha256 ops for 3s on 16384 size blocks: 343094 sha256 ops in 3.00s -Doing sha512 ops for 3s on 16 size blocks: 6736951 sha512 ops in 3.00s -Doing sha512 ops for 3s on 64 size blocks: 6747678 sha512 ops in 3.00s -Doing sha512 ops for 3s on 256 size blocks: 3133492 sha512 ops in 3.00s -Doing sha512 ops for 3s on 1024 size blocks: 1200082 sha512 ops in 3.00s -Doing sha512 ops for 3s on 8192 size blocks: 177471 sha512 ops in 3.00s -Doing sha512 ops for 3s on 16384 size blocks: 89984 sha512 ops in 3.00s -Doing rmd160 ops for 3s on 16 size blocks: 8352938 rmd160 ops in 2.99s -Doing rmd160 ops for 3s on 64 size blocks: 5662418 rmd160 ops in 3.00s -Doing rmd160 ops for 3s on 256 size blocks: 2840566 rmd160 ops in 3.00s -Doing rmd160 ops for 3s on 1024 size blocks: 949636 rmd160 ops in 3.00s -Doing rmd160 ops for 3s on 8192 size blocks: 131563 rmd160 ops in 3.00s -Doing rmd160 ops for 3s on 16384 size blocks: 66320 rmd160 ops in 3.00s -Doing hmac(md5) ops for 3s on 16 size blocks: 6928359 hmac(md5) ops in 3.00s -Doing hmac(md5) ops for 3s on 64 size blocks: 5723023 hmac(md5) ops in 3.00s -Doing hmac(md5) ops for 3s on 256 size blocks: 3605766 hmac(md5) ops in 3.00s -Doing hmac(md5) ops for 3s on 1024 size blocks: 1459531 hmac(md5) ops in 3.00s -Doing hmac(md5) ops for 3s on 8192 size blocks: 222493 hmac(md5) ops in 3.00s -Doing hmac(md5) ops for 3s on 16384 size blocks: 113078 hmac(md5) ops in 3.00s -Doing des-ede3 ops for 3s on 16 size blocks: 5535545 des-ede3 ops in 3.00s -Doing des-ede3 ops for 3s on 64 size blocks: 1414885 des-ede3 ops in 3.00s -Doing des-ede3 ops for 3s on 256 size blocks: 356199 des-ede3 ops in 3.00s -Doing des-ede3 ops for 3s on 1024 size blocks: 89194 des-ede3 ops in 3.00s -Doing des-ede3 ops for 3s on 8192 size blocks: 11157 des-ede3 ops in 3.00s -Doing des-ede3 ops for 3s on 16384 size blocks: 5581 des-ede3 ops in 3.00s -Doing aes-128-cbc ops for 3s on 16 size blocks: 175444017 aes-128-cbc ops in 3.00s -Doing aes-128-cbc ops for 3s on 64 size blocks: 83674547 aes-128-cbc ops in 3.00s -Doing aes-128-cbc ops for 3s on 256 size blocks: 25765251 aes-128-cbc ops in 3.00s -Doing aes-128-cbc ops for 3s on 1024 size blocks: 6844971 aes-128-cbc ops in 3.00s -Doing aes-128-cbc ops for 3s on 8192 size blocks: 873725 aes-128-cbc ops in 3.00s -Doing aes-128-cbc ops for 3s on 16384 size blocks: 437837 aes-128-cbc ops in 3.00s -Doing aes-192-cbc ops for 3s on 16 size blocks: 164844391 aes-192-cbc ops in 3.00s -Doing aes-192-cbc ops for 3s on 64 size blocks: 73097267 aes-192-cbc ops in 3.00s -Doing aes-192-cbc ops for 3s on 256 size blocks: 21779695 aes-192-cbc ops in 3.00s -Doing aes-192-cbc ops for 3s on 1024 size blocks: 5692886 aes-192-cbc ops in 3.00s -Doing aes-192-cbc ops for 3s on 8192 size blocks: 728771 aes-192-cbc ops in 3.00s -Doing aes-192-cbc ops for 3s on 16384 size blocks: 364995 aes-192-cbc ops in 2.99s -Doing aes-256-cbc ops for 3s on 16 size blocks: 157709463 aes-256-cbc ops in 3.00s -Doing aes-256-cbc ops for 3s on 64 size blocks: 64500048 aes-256-cbc ops in 3.00s -Doing aes-256-cbc ops for 3s on 256 size blocks: 18822279 aes-256-cbc ops in 3.00s -Doing aes-256-cbc ops for 3s on 1024 size blocks: 4924346 aes-256-cbc ops in 3.00s -Doing aes-256-cbc ops for 3s on 8192 size blocks: 624962 aes-256-cbc ops in 3.00s -Doing aes-256-cbc ops for 3s on 16384 size blocks: 312961 aes-256-cbc ops in 3.00s -Doing camellia-128-cbc ops for 3s on 16 size blocks: 23822088 camellia-128-cbc ops in 3.00s -Doing camellia-128-cbc ops for 3s on 64 size blocks: 6285100 camellia-128-cbc ops in 3.00s -Doing camellia-128-cbc ops for 3s on 256 size blocks: 1593318 camellia-128-cbc ops in 3.00s -Doing camellia-128-cbc ops for 3s on 1024 size blocks: 400446 camellia-128-cbc ops in 3.00s -Doing camellia-128-cbc ops for 3s on 8192 size blocks: 50147 camellia-128-cbc ops in 3.00s -Doing camellia-128-cbc ops for 3s on 16384 size blocks: 25077 camellia-128-cbc ops in 3.00s -Doing camellia-192-cbc ops for 3s on 16 size blocks: 18837647 camellia-192-cbc ops in 3.00s -Doing camellia-192-cbc ops for 3s on 64 size blocks: 4923334 camellia-192-cbc ops in 3.00s -Doing camellia-192-cbc ops for 3s on 256 size blocks: 1244311 camellia-192-cbc ops in 3.00s -Doing camellia-192-cbc ops for 3s on 1024 size blocks: 312379 camellia-192-cbc ops in 3.00s -Doing camellia-192-cbc ops for 3s on 8192 size blocks: 39098 camellia-192-cbc ops in 3.00s -Doing camellia-192-cbc ops for 3s on 16384 size blocks: 19554 camellia-192-cbc ops in 3.00s -Doing camellia-256-cbc ops for 3s on 16 size blocks: 18842909 camellia-256-cbc ops in 3.00s -Doing camellia-256-cbc ops for 3s on 64 size blocks: 4922935 camellia-256-cbc ops in 3.00s -Doing camellia-256-cbc ops for 3s on 256 size blocks: 1244318 camellia-256-cbc ops in 3.00s -Doing camellia-256-cbc ops for 3s on 1024 size blocks: 312353 camellia-256-cbc ops in 3.00s -Doing camellia-256-cbc ops for 3s on 8192 size blocks: 39099 camellia-256-cbc ops in 2.99s -Doing camellia-256-cbc ops for 3s on 16384 size blocks: 19553 camellia-256-cbc ops in 3.00s -Doing ghash ops for 3s on 16 size blocks: 128501351 ghash ops in 3.00s -Doing ghash ops for 3s on 64 size blocks: 107369007 ghash ops in 3.00s -Doing ghash ops for 3s on 256 size blocks: 51054897 ghash ops in 3.00s -Doing ghash ops for 3s on 1024 size blocks: 16693499 ghash ops in 3.00s -Doing ghash ops for 3s on 8192 size blocks: 2282312 ghash ops in 3.00s -Doing ghash ops for 3s on 16384 size blocks: 1143164 ghash ops in 3.00s -Doing rand ops for 3s on 16 size blocks: 4645485 rand ops in 2.33s -Doing rand ops for 3s on 64 size blocks: 4542041 rand ops in 2.40s -Doing rand ops for 3s on 256 size blocks: 4173229 rand ops in 2.40s -Doing rand ops for 3s on 1024 size blocks: 3048542 rand ops in 2.57s -Doing rand ops for 3s on 8192 size blocks: 876497 rand ops in 2.88s -Doing rand ops for 3s on 16384 size blocks: 482831 rand ops in 2.91s -Doing 512 bits private rsa sign ops for 10s: 144289 512 bits private RSA sign ops in 10.00s -Doing 512 bits public rsa verify ops for 10s: 1682339 512 bits public RSA verify ops in 10.00s -Doing 512 bits private rsa encrypt ops for 10s: 1468643 512 bits public RSA encrypt ops in 9.76s -Doing 512 bits private rsa decrypt ops for 10s: 132722 512 bits private RSA decrypt ops in 9.99s -Doing 1024 bits private rsa sign ops for 10s: 24743 1024 bits private RSA sign ops in 10.00s -Doing 1024 bits public rsa verify ops for 10s: 482270 1024 bits public RSA verify ops in 9.99s -Doing 1024 bits private rsa encrypt ops for 10s: 458447 1024 bits public RSA encrypt ops in 9.90s -Doing 1024 bits private rsa decrypt ops for 10s: 24320 1024 bits private RSA decrypt ops in 10.00s -Doing 2048 bits private rsa sign ops for 10s: 3520 2048 bits private RSA sign ops in 10.00s -Doing 2048 bits public rsa verify ops for 10s: 128460 2048 bits public RSA verify ops in 10.00s -Doing 2048 bits private rsa encrypt ops for 10s: 126032 2048 bits public RSA encrypt ops in 9.95s -Doing 2048 bits private rsa decrypt ops for 10s: 3508 2048 bits private RSA decrypt ops in 10.00s -Doing 3072 bits private rsa sign ops for 10s: 1132 3072 bits private RSA sign ops in 9.99s -Doing 3072 bits public rsa verify ops for 10s: 68813 3072 bits public RSA verify ops in 10.00s -Doing 3072 bits private rsa encrypt ops for 10s: 67946 3072 bits public RSA encrypt ops in 9.99s -Doing 3072 bits private rsa decrypt ops for 10s: 1131 3072 bits private RSA decrypt ops in 10.01s -Doing 4096 bits private rsa sign ops for 10s: 496 4096 bits private RSA sign ops in 10.01s -Doing 4096 bits public rsa verify ops for 10s: 40349 4096 bits public RSA verify ops in 10.00s -Doing 4096 bits private rsa encrypt ops for 10s: 39978 4096 bits public RSA encrypt ops in 9.98s -Doing 4096 bits private rsa decrypt ops for 10s: 495 4096 bits private RSA decrypt ops in 10.01s -Doing 7680 bits private rsa sign ops for 10s: 97 7680 bits private RSA sign ops in 10.03s -Doing 7680 bits public rsa verify ops for 10s: 12181 7680 bits public RSA verify ops in 9.99s -Doing 7680 bits private rsa encrypt ops for 10s: 12125 7680 bits public RSA encrypt ops in 9.98s -Doing 7680 bits private rsa decrypt ops for 10s: 97 7680 bits private RSA decrypt ops in 10.03s -Doing 15360 bits private rsa sign ops for 10s: 14 15360 bits private RSA sign ops in 10.59s -Doing 15360 bits public rsa verify ops for 10s: 3153 15360 bits public RSA verify ops in 10.00s -Doing 15360 bits private rsa encrypt ops for 10s: 3147 15360 bits public RSA encrypt ops in 10.00s -Doing 15360 bits private rsa decrypt ops for 10s: 14 15360 bits private RSA decrypt ops in 10.59s -Doing 1024 bits sign dsa ops for 10s: 32782 1024 bits DSA sign ops in 9.99s -Doing 1024 bits verify dsa ops for 10s: 38143 1024 bits DSA verify ops in 10.00s -Doing 2048 bits sign dsa ops for 10s: 9496 2048 bits DSA sign ops in 9.99s -Doing 2048 bits verify dsa ops for 10s: 10190 2048 bits DSA verify ops in 10.00s -Doing 160 bits sign ecdsa ops for 10s: 36299 160 bits ECDSA sign ops in 9.99s -Doing 160 bits verify ecdsa ops for 10s: 39019 160 bits ECDSA verify ops in 9.99s -Doing 192 bits sign ecdsa ops for 10s: 29829 192 bits ECDSA sign ops in 9.98s -Doing 192 bits verify ecdsa ops for 10s: 32241 192 bits ECDSA verify ops in 9.98s -Doing 224 bits sign ecdsa ops for 10s: 18506 224 bits ECDSA sign ops in 9.99s -Doing 224 bits verify ecdsa ops for 10s: 21291 224 bits ECDSA verify ops in 9.99s -Doing 256 bits sign ecdsa ops for 10s: 226719 256 bits ECDSA sign ops in 9.94s -Doing 256 bits verify ecdsa ops for 10s: 66572 256 bits ECDSA verify ops in 10.00s -Doing 384 bits sign ecdsa ops for 10s: 5452 384 bits ECDSA sign ops in 9.99s -Doing 384 bits verify ecdsa ops for 10s: 7047 384 bits ECDSA verify ops in 10.00s -Doing 521 bits sign ecdsa ops for 10s: 1984 521 bits ECDSA sign ops in 9.99s -Doing 521 bits verify ecdsa ops for 10s: 2669 521 bits ECDSA verify ops in 10.00s -Doing 163 bits sign ecdsa ops for 10s: 25809 163 bits ECDSA sign ops in 9.97s -Doing 163 bits verify ecdsa ops for 10s: 13080 163 bits ECDSA verify ops in 10.00s -Doing 233 bits sign ecdsa ops for 10s: 17149 233 bits ECDSA sign ops in 9.99s -Doing 233 bits verify ecdsa ops for 10s: 8740 233 bits ECDSA verify ops in 9.98s -Doing 283 bits sign ecdsa ops for 10s: 8213 283 bits ECDSA sign ops in 9.99s -Doing 283 bits verify ecdsa ops for 10s: 4181 283 bits ECDSA verify ops in 9.99s -Doing 409 bits sign ecdsa ops for 10s: 3837 409 bits ECDSA sign ops in 10.00s -Doing 409 bits verify ecdsa ops for 10s: 1965 409 bits ECDSA verify ops in 10.00s -Doing 571 bits sign ecdsa ops for 10s: 1821 571 bits ECDSA sign ops in 9.99s -Doing 571 bits verify ecdsa ops for 10s: 932 571 bits ECDSA verify ops in 10.01s -Doing 163 bits sign ecdsa ops for 10s: 24469 163 bits ECDSA sign ops in 9.98s -Doing 163 bits verify ecdsa ops for 10s: 12407 163 bits ECDSA verify ops in 9.98s -Doing 233 bits sign ecdsa ops for 10s: 16275 233 bits ECDSA sign ops in 9.99s -Doing 233 bits verify ecdsa ops for 10s: 8290 233 bits ECDSA verify ops in 9.99s -Doing 283 bits sign ecdsa ops for 10s: 7578 283 bits ECDSA sign ops in 9.99s -Doing 283 bits verify ecdsa ops for 10s: 3854 283 bits ECDSA verify ops in 9.99s -Doing 409 bits sign ecdsa ops for 10s: 3486 409 bits ECDSA sign ops in 10.00s -Doing 409 bits verify ecdsa ops for 10s: 1779 409 bits ECDSA verify ops in 9.99s -Doing 571 bits sign ecdsa ops for 10s: 1630 571 bits ECDSA sign ops in 10.00s -Doing 571 bits verify ecdsa ops for 10s: 834 571 bits ECDSA verify ops in 10.00s -Doing 256 bits sign ecdsa ops for 10s: 16553 256 bits ECDSA sign ops in 9.99s -Doing 256 bits verify ecdsa ops for 10s: 17893 256 bits ECDSA verify ops in 9.99s -Doing 256 bits sign ecdsa ops for 10s: 16554 256 bits ECDSA sign ops in 9.98s -Doing 256 bits verify ecdsa ops for 10s: 19066 256 bits ECDSA verify ops in 9.99s -Doing 384 bits sign ecdsa ops for 10s: 5456 384 bits ECDSA sign ops in 9.99s -Doing 384 bits verify ecdsa ops for 10s: 6483 384 bits ECDSA verify ops in 10.00s -Doing 384 bits sign ecdsa ops for 10s: 5494 384 bits ECDSA sign ops in 10.00s -Doing 384 bits verify ecdsa ops for 10s: 7062 384 bits ECDSA verify ops in 10.00s -Doing 512 bits sign ecdsa ops for 10s: 2709 512 bits ECDSA sign ops in 10.00s -Doing 512 bits verify ecdsa ops for 10s: 3418 512 bits ECDSA verify ops in 10.00s -Doing 512 bits sign ecdsa ops for 10s: 2723 512 bits ECDSA sign ops in 10.00s -Doing 512 bits verify ecdsa ops for 10s: 3734 512 bits ECDSA verify ops in 10.00s -Doing 160 bits ecdh ops for 10s: 38433 160-bits ECDH ops in 9.99s -Doing 192 bits ecdh ops for 10s: 31532 192-bits ECDH ops in 9.99s -Doing 224 bits ecdh ops for 10s: 19511 224-bits ECDH ops in 10.00s -Doing 256 bits ecdh ops for 10s: 86295 256-bits ECDH ops in 10.00s -Doing 384 bits ecdh ops for 10s: 5743 384-bits ECDH ops in 10.00s -Doing 521 bits ecdh ops for 10s: 2093 521-bits ECDH ops in 10.00s -Doing 163 bits ecdh ops for 10s: 26858 163-bits ECDH ops in 9.97s -Doing 233 bits ecdh ops for 10s: 18003 233-bits ECDH ops in 9.99s -Doing 283 bits ecdh ops for 10s: 8589 283-bits ECDH ops in 9.99s -Doing 409 bits ecdh ops for 10s: 4052 409-bits ECDH ops in 10.00s -Doing 571 bits ecdh ops for 10s: 1916 571-bits ECDH ops in 10.01s -Doing 163 bits ecdh ops for 10s: 25474 163-bits ECDH ops in 9.99s -Doing 233 bits ecdh ops for 10s: 17051 233-bits ECDH ops in 10.00s -Doing 283 bits ecdh ops for 10s: 7893 283-bits ECDH ops in 9.99s -Doing 409 bits ecdh ops for 10s: 3647 409-bits ECDH ops in 10.00s -Doing 571 bits ecdh ops for 10s: 1712 571-bits ECDH ops in 9.99s -Doing 256 bits ecdh ops for 10s: 17430 256-bits ECDH ops in 9.97s -Doing 256 bits ecdh ops for 10s: 17433 256-bits ECDH ops in 9.98s -Doing 384 bits ecdh ops for 10s: 5746 384-bits ECDH ops in 10.00s -Doing 384 bits ecdh ops for 10s: 5787 384-bits ECDH ops in 10.00s -Doing 512 bits ecdh ops for 10s: 2840 512-bits ECDH ops in 10.00s -Doing 512 bits ecdh ops for 10s: 2856 512-bits ECDH ops in 10.00s -Doing 253 bits ecdh ops for 10s: 75754 253-bits ECDH ops in 10.00s -Doing 448 bits ecdh ops for 10s: 21060 448-bits ECDH ops in 10.00s -Doing 253 bits sign Ed25519 ops for 10s: 280576 253 bits Ed25519 sign ops in 10.00s -Doing 253 bits verify Ed25519 ops for 10s: 88064 253 bits Ed25519 verify ops in 10.00s -Doing 456 bits sign Ed448 ops for 10s: 26887 456 bits Ed448 sign ops in 10.00s -Doing 456 bits verify Ed448 ops for 10s: 19076 456 bits Ed448 verify ops in 10.00s -Doing 256 bits sign CurveSM2 ops for 10s: 16463 256 bits CurveSM2 sign ops in 9.99s -Doing 256 bits verify CurveSM2 ops for 10s: 19791 256 bits CurveSM2 verify ops in 10.00s -Doing 2048 bits ffdh ops for 10s: 7526 2048-bits FFDH ops in 9.99s -Doing 3072 bits ffdh ops for 10s: 3311 3072-bits FFDH ops in 9.99s -Doing 4096 bits ffdh ops for 10s: 1633 4096-bits FFDH ops in 10.00s -Doing 6144 bits ffdh ops for 10s: 759 6144-bits FFDH ops in 10.01s -Doing 8192 bits ffdh ops for 10s: 376 8192-bits FFDH ops in 10.00s -Doing rsa512 keygen ops for 10s: 1886 rsa512 KEM keygen ops in 9.90s -Doing rsa512 encaps ops for 10s: 1324186 rsa512 KEM encaps ops in 9.76s -Doing rsa512 decaps ops for 10s: 143983 rsa512 KEM decaps ops in 10.00s -Doing rsa1024 keygen ops for 10s: 266 rsa1024 KEM keygen ops in 9.98s -Doing rsa1024 encaps ops for 10s: 440391 rsa1024 KEM encaps ops in 9.91s -Doing rsa1024 decaps ops for 10s: 24732 rsa1024 KEM decaps ops in 10.00s -Doing rsa2048 keygen ops for 10s: 50 rsa2048 KEM keygen ops in 10.22s -Doing rsa2048 encaps ops for 10s: 124856 rsa2048 KEM encaps ops in 9.98s -Doing rsa2048 decaps ops for 10s: 3519 rsa2048 KEM decaps ops in 10.00s -Doing rsa3072 keygen ops for 10s: 13 rsa3072 KEM keygen ops in 10.47s -Doing rsa3072 encaps ops for 10s: 67320 rsa3072 KEM encaps ops in 9.99s -Doing rsa3072 decaps ops for 10s: 1132 rsa3072 KEM decaps ops in 9.99s -Doing rsa4096 keygen ops for 10s: 5 rsa4096 KEM keygen ops in 15.11s -Doing rsa4096 encaps ops for 10s: 39840 rsa4096 KEM encaps ops in 9.99s -Doing rsa4096 decaps ops for 10s: 496 rsa4096 KEM decaps ops in 10.02s -Doing rsa7680 keygen ops for 10s: 2 rsa7680 KEM keygen ops in 11.54s -Doing rsa7680 encaps ops for 10s: 12098 rsa7680 KEM encaps ops in 9.99s -Doing rsa7680 decaps ops for 10s: 97 rsa7680 KEM decaps ops in 10.03s -Doing rsa15360 keygen ops for 10s: 1 rsa15360 KEM keygen ops in 300.11s -Doing rsa15360 encaps ops for 10s: 3141 rsa15360 KEM encaps ops in 10.00s -Doing rsa15360 decaps ops for 10s: 14 rsa15360 KEM decaps ops in 10.60s -Doing ECP-256 keygen ops for 10s: 437294 ECP-256 KEM keygen ops in 9.90s -Doing ECP-256 encaps ops for 10s: 25958 ECP-256 KEM encaps ops in 9.98s -Doing ECP-256 decaps ops for 10s: 28058 ECP-256 KEM decaps ops in 10.00s -Doing ECP-384 keygen ops for 10s: 5721 ECP-384 KEM keygen ops in 10.00s -Doing ECP-384 encaps ops for 10s: 1828 ECP-384 KEM encaps ops in 10.00s -Doing ECP-384 decaps ops for 10s: 2685 ECP-384 KEM decaps ops in 10.00s -Doing ECP-521 keygen ops for 10s: 2089 ECP-521 KEM keygen ops in 10.00s -Doing ECP-521 encaps ops for 10s: 686 ECP-521 KEM encaps ops in 10.01s -Doing ECP-521 decaps ops for 10s: 1020 ECP-521 KEM decaps ops in 10.01s -Doing X25519 keygen ops for 10s: 270125 X25519 KEM keygen ops in 9.95s -Doing X25519 encaps ops for 10s: 57351 X25519 KEM encaps ops in 10.00s -Doing X25519 decaps ops for 10s: 73749 X25519 KEM decaps ops in 10.00s -Doing X448 keygen ops for 10s: 27117 X448 KEM keygen ops in 9.99s -Doing X448 encaps ops for 10s: 11572 X448 KEM encaps ops in 10.00s -Doing X448 decaps ops for 10s: 20787 X448 KEM decaps ops in 10.00s -Doing rsa512 keygen ops for 10s: 1884 rsa512 signature keygen ops in 9.92s -Doing rsa512 signs ops for 10s: 144266 rsa512 signature sign ops in 10.00s -Doing rsa512 verify ops for 10s: 1682209 rsa512 signature verify ops in 10.00s -Doing rsa1024 keygen ops for 10s: 271 rsa1024 signature keygen ops in 10.00s -Doing rsa1024 signs ops for 10s: 24741 rsa1024 signature sign ops in 9.99s -Doing rsa1024 verify ops for 10s: 482095 rsa1024 signature verify ops in 10.00s -Doing rsa2048 keygen ops for 10s: 50 rsa2048 signature keygen ops in 10.05s -Doing rsa2048 signs ops for 10s: 3518 rsa2048 signature sign ops in 9.99s -Doing rsa2048 verify ops for 10s: 128454 rsa2048 signature verify ops in 10.00s -Doing rsa3072 keygen ops for 10s: 11 rsa3072 signature keygen ops in 10.06s -Doing rsa3072 signs ops for 10s: 1132 rsa3072 signature sign ops in 10.00s -Doing rsa3072 verify ops for 10s: 68810 rsa3072 signature verify ops in 10.00s -Doing rsa4096 keygen ops for 10s: 5 rsa4096 signature keygen ops in 13.33s -Doing rsa4096 signs ops for 10s: 496 rsa4096 signature sign ops in 10.02s -Doing rsa4096 verify ops for 10s: 40336 rsa4096 signature verify ops in 10.00s -Doing rsa7680 keygen ops for 10s: 1 rsa7680 signature keygen ops in 19.28s -Doing rsa7680 signs ops for 10s: 97 rsa7680 signature sign ops in 10.03s -Doing rsa7680 verify ops for 10s: 12179 rsa7680 signature verify ops in 10.00s -Doing rsa15360 keygen ops for 10s: 1 rsa15360 signature keygen ops in 409.28s -Doing rsa15360 signs ops for 10s: 14 rsa15360 signature sign ops in 10.59s -Doing rsa15360 verify ops for 10s: 3153 rsa15360 signature verify ops in 10.00s -Doing dsa1024 keygen ops for 10s: 15254 dsa1024 signature keygen ops in 9.99s -Doing dsa1024 signs ops for 10s: 24490 dsa1024 signature sign ops in 9.99s -Doing dsa1024 verify ops for 10s: 33583 dsa1024 signature verify ops in 10.00s -Doing dsa2048 keygen ops for 10s: 4099 dsa2048 signature keygen ops in 10.00s -Doing dsa2048 signs ops for 10s: 7183 dsa2048 signature sign ops in 9.99s -Doing dsa2048 verify ops for 10s: 9384 dsa2048 signature verify ops in 10.00s -version: 3.2.0-dev -built on: Thu Aug 24 11:01:14 2023 UTC -options: bn(64,64) -compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -CPUINFO: OPENSSL_armcap=0xbd -The 'numbers' are in 1000s of bytes per second processed. -type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes -md5 58392.26k 173168.94k 378517.25k 538816.85k 615170.05k 621199.36k -sha1 76092.17k 271286.06k 754164.22k 1349933.40k 1762904.75k 1802245.46k -rmd160 44698.00k 120798.25k 242394.97k 324142.42k 359254.70k 362195.63k -sha256 77151.73k 278519.30k 777483.09k 1400427.18k 1832345.60k 1873750.70k -sha512 35930.41k 143950.46k 267391.32k 409627.99k 484614.14k 491432.62k -hmac(md5) 36951.25k 122091.16k 307692.03k 498186.58k 607554.22k 617556.65k -des-ede3 29522.91k 30184.21k 30395.65k 30444.89k 30466.05k 30479.70k -aes-128-cbc 935701.42k 1785057.00k 2198634.75k 2336416.77k 2385851.73k 2391173.80k -aes-192-cbc 879170.09k 1559408.36k 1858533.97k 1943171.75k 1990030.68k 2000026.11k -aes-256-cbc 841117.14k 1376001.02k 1606167.81k 1680843.43k 1706562.90k 1709184.34k -camellia-128-cbc 127051.14k 134082.13k 135963.14k 136685.57k 136934.74k 136953.86k -camellia-192-cbc 100467.45k 105031.13k 106181.21k 106625.37k 106763.61k 106790.91k -camellia-256-cbc 100495.51k 105022.61k 106181.80k 106616.49k 107123.41k 106785.45k -ghash 685340.54k 2290538.82k 4356684.54k 5698047.66k 6232233.30k 6243199.66k -rand 31900.33k 121121.09k 445144.43k 1214671.99k 2493147.02k 2718454.67k - sign verify encrypt decrypt sign/s verify/s encr./s decr./s -rsa 512 bits 0.000069s 0.000006s 0.000007s 0.000075s 14428.9 168233.9 150475.7 13285.5 -rsa 1024 bits 0.000404s 0.000021s 0.000022s 0.000411s 2474.3 48275.3 46307.8 2432.0 -rsa 2048 bits 0.002841s 0.000078s 0.000079s 0.002851s 352.0 12846.0 12666.5 350.8 -rsa 3072 bits 0.008825s 0.000145s 0.000147s 0.008851s 113.3 6881.3 6801.4 113.0 -rsa 4096 bits 0.020181s 0.000248s 0.000250s 0.020222s 49.6 4034.9 4005.8 49.5 -rsa 7680 bits 0.103402s 0.000820s 0.000823s 0.103402s 9.7 1219.3 1214.9 9.7 -rsa 15360 bits 0.756429s 0.003172s 0.003178s 0.756429s 1.3 315.3 314.7 1.3 - sign verify sign/s verify/s -dsa 1024 bits 0.000305s 0.000262s 3281.5 3814.3 -dsa 2048 bits 0.001052s 0.000981s 950.6 1019.0 - sign verify sign/s verify/s - 160 bits ecdsa (secp160r1) 0.0003s 0.0003s 3633.5 3905.8 - 192 bits ecdsa (nistp192) 0.0003s 0.0003s 2988.9 3230.6 - 224 bits ecdsa (nistp224) 0.0005s 0.0005s 1852.5 2131.2 - 256 bits ecdsa (nistp256) 0.0000s 0.0002s 22808.8 6657.2 - 384 bits ecdsa (nistp384) 0.0018s 0.0014s 545.7 704.7 - 521 bits ecdsa (nistp521) 0.0050s 0.0037s 198.6 266.9 - 163 bits ecdsa (nistk163) 0.0004s 0.0008s 2588.7 1308.0 - 233 bits ecdsa (nistk233) 0.0006s 0.0011s 1716.6 875.8 - 283 bits ecdsa (nistk283) 0.0012s 0.0024s 822.1 418.5 - 409 bits ecdsa (nistk409) 0.0026s 0.0051s 383.7 196.5 - 571 bits ecdsa (nistk571) 0.0055s 0.0107s 182.3 93.1 - 163 bits ecdsa (nistb163) 0.0004s 0.0008s 2451.8 1243.2 - 233 bits ecdsa (nistb233) 0.0006s 0.0012s 1629.1 829.8 - 283 bits ecdsa (nistb283) 0.0013s 0.0026s 758.6 385.8 - 409 bits ecdsa (nistb409) 0.0029s 0.0056s 348.6 178.1 - 571 bits ecdsa (nistb571) 0.0061s 0.0120s 163.0 83.4 - 256 bits ecdsa (brainpoolP256r1) 0.0006s 0.0006s 1657.0 1791.1 - 256 bits ecdsa (brainpoolP256t1) 0.0006s 0.0005s 1658.7 1908.5 - 384 bits ecdsa (brainpoolP384r1) 0.0018s 0.0015s 546.1 648.3 - 384 bits ecdsa (brainpoolP384t1) 0.0018s 0.0014s 549.4 706.2 - 512 bits ecdsa (brainpoolP512r1) 0.0037s 0.0029s 270.9 341.8 - 512 bits ecdsa (brainpoolP512t1) 0.0037s 0.0027s 272.3 373.4 - op op/s - 160 bits ecdh (secp160r1) 0.0003s 3847.1 - 192 bits ecdh (nistp192) 0.0003s 3156.4 - 224 bits ecdh (nistp224) 0.0005s 1951.1 - 256 bits ecdh (nistp256) 0.0001s 8629.5 - 384 bits ecdh (nistp384) 0.0017s 574.3 - 521 bits ecdh (nistp521) 0.0048s 209.3 - 163 bits ecdh (nistk163) 0.0004s 2693.9 - 233 bits ecdh (nistk233) 0.0006s 1802.1 - 283 bits ecdh (nistk283) 0.0012s 859.8 - 409 bits ecdh (nistk409) 0.0025s 405.2 - 571 bits ecdh (nistk571) 0.0052s 191.4 - 163 bits ecdh (nistb163) 0.0004s 2549.9 - 233 bits ecdh (nistb233) 0.0006s 1705.1 - 283 bits ecdh (nistb283) 0.0013s 790.1 - 409 bits ecdh (nistb409) 0.0027s 364.7 - 571 bits ecdh (nistb571) 0.0058s 171.4 - 256 bits ecdh (brainpoolP256r1) 0.0006s 1748.2 - 256 bits ecdh (brainpoolP256t1) 0.0006s 1746.8 - 384 bits ecdh (brainpoolP384r1) 0.0017s 574.6 - 384 bits ecdh (brainpoolP384t1) 0.0017s 578.7 - 512 bits ecdh (brainpoolP512r1) 0.0035s 284.0 - 512 bits ecdh (brainpoolP512t1) 0.0035s 285.6 - 253 bits ecdh (X25519) 0.0001s 7575.4 - 448 bits ecdh (X448) 0.0005s 2106.0 - sign verify sign/s verify/s - 253 bits EdDSA (Ed25519) 0.0000s 0.0001s 28057.6 8806.4 - 456 bits EdDSA (Ed448) 0.0004s 0.0005s 2688.7 1907.6 - sign verify sign/s verify/s - 256 bits SM2 (CurveSM2) 0.0006s 0.0005s 1647.9 1979.1 - op op/s -2048 bits ffdh 0.0013s 753.4 -3072 bits ffdh 0.0030s 331.4 -4096 bits ffdh 0.0061s 163.3 -6144 bits ffdh 0.0132s 75.8 -8192 bits ffdh 0.0266s 37.6 - keygen encaps decaps keygens/s encaps/s decaps/s - rsa512 0.005249s 0.000007s 0.000069s 190.5 135674.8 14398.3 - rsa1024 0.037519s 0.000023s 0.000404s 26.7 44439.1 2473.2 - rsa2048 0.204400s 0.000080s 0.002842s 4.9 12510.6 351.9 - rsa3072 0.805385s 0.000148s 0.008825s 1.2 6738.7 113.3 - rsa4096 3.022000s 0.000251s 0.020202s 0.3 3988.0 49.5 - rsa7680 5.770000s 0.000826s 0.103402s 0.2 1211.0 9.7 - rsa15360 300.110000s 0.003184s 0.757143s 0.0 314.1 1.3 - ECP-256 0.000023s 0.000384s 0.000356s 44171.1 2601.0 2805.8 - ECP-384 0.001748s 0.005470s 0.003724s 572.1 182.8 268.5 - ECP-521 0.004787s 0.014592s 0.009814s 208.9 68.5 101.9 - X25519 0.000037s 0.000174s 0.000136s 27148.2 5735.1 7374.9 - X448 0.000368s 0.000864s 0.000481s 2714.4 1157.2 2078.7 - keygen signs verify keygens/s sign/s verify/s - rsa512 0.005265s 0.000069s 0.000006s 189.9 14426.6 168220.9 - rsa1024 0.036900s 0.000404s 0.000021s 27.1 2476.6 48209.5 - rsa2048 0.201000s 0.002840s 0.000078s 5.0 352.2 12845.4 - rsa3072 0.914545s 0.008834s 0.000145s 1.1 113.2 6881.0 - rsa4096 2.666000s 0.020202s 0.000248s 0.4 49.5 4033.6 - rsa7680 19.280000s 0.103402s 0.000821s 0.1 9.7 1217.9 - rsa15360 409.280000s 0.756429s 0.003172s 0.0 1.3 315.3 - dsa1024 0.000655s 0.000408s 0.000298s 1526.9 2451.5 3358.3 - dsa2048 0.002440s 0.001391s 0.001066s 409.9 719.0 938.4 -Doing sm3 ops for 3s on 16 size blocks: 7269229 sm3 ops in 2.99s -Doing sm3 ops for 3s on 64 size blocks: 4693193 sm3 ops in 3.00s -Doing sm3 ops for 3s on 256 size blocks: 2267289 sm3 ops in 3.00s -Doing sm3 ops for 3s on 1024 size blocks: 739294 sm3 ops in 3.00s -Doing sm3 ops for 3s on 8192 size blocks: 101343 sm3 ops in 3.00s -Doing sm3 ops for 3s on 16384 size blocks: 51041 sm3 ops in 3.00s -version: 3.2.0-dev -built on: Thu Aug 24 11:01:14 2023 UTC -options: bn(64,64) -compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -CPUINFO: OPENSSL_armcap=0xbd -The 'numbers' are in 1000s of bytes per second processed. -type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes -sm3 38898.88k 100121.45k 193475.33k 252345.69k 276733.95k 278751.91k -Doing SM4-CBC ops for 3s on 16 size blocks: 9901740 SM4-CBC ops in 2.99s -Doing SM4-CBC ops for 3s on 64 size blocks: 2558408 SM4-CBC ops in 3.00s -Doing SM4-CBC ops for 3s on 256 size blocks: 644241 SM4-CBC ops in 3.00s -Doing SM4-CBC ops for 3s on 1024 size blocks: 161163 SM4-CBC ops in 3.00s -Doing SM4-CBC ops for 3s on 8192 size blocks: 20177 SM4-CBC ops in 3.00s -Doing SM4-CBC ops for 3s on 16384 size blocks: 10089 SM4-CBC ops in 3.00s -version: 3.2.0-dev -built on: Thu Aug 24 11:01:14 2023 UTC -options: bn(64,64) -compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -CPUINFO: OPENSSL_armcap=0xbd -The 'numbers' are in 1000s of bytes per second processed. -type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes -SM4-CBC 52985.90k 54579.37k 54975.23k 55010.30k 55096.66k 55099.39k -Doing AES-128-GCM ops for 3s on 16 size blocks: 85099353 AES-128-GCM ops in 3.00s -Doing AES-128-GCM ops for 3s on 64 size blocks: 59402645 AES-128-GCM ops in 3.00s -Doing AES-128-GCM ops for 3s on 256 size blocks: 24038343 AES-128-GCM ops in 3.00s -Doing AES-128-GCM ops for 3s on 1024 size blocks: 7769452 AES-128-GCM ops in 3.00s -Doing AES-128-GCM ops for 3s on 8192 size blocks: 1083830 AES-128-GCM ops in 3.00s -Doing AES-128-GCM ops for 3s on 16384 size blocks: 546297 AES-128-GCM ops in 3.00s -version: 3.2.0-dev -built on: Thu Aug 24 11:01:14 2023 UTC -options: bn(64,64) -compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -CPUINFO: OPENSSL_armcap=0xbd -The 'numbers' are in 1000s of bytes per second processed. -type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes -AES-128-GCM 453863.22k 1267256.43k 2051271.94k 2651972.95k 2959578.45k 2983510.02k -Doing AES-192-GCM ops for 3s on 16 size blocks: 82345350 AES-192-GCM ops in 3.00s -Doing AES-192-GCM ops for 3s on 64 size blocks: 56151353 AES-192-GCM ops in 3.00s -Doing AES-192-GCM ops for 3s on 256 size blocks: 22240905 AES-192-GCM ops in 3.00s -Doing AES-192-GCM ops for 3s on 1024 size blocks: 7135140 AES-192-GCM ops in 3.00s -Doing AES-192-GCM ops for 3s on 8192 size blocks: 992183 AES-192-GCM ops in 3.00s -Doing AES-192-GCM ops for 3s on 16384 size blocks: 499732 AES-192-GCM ops in 3.00s -version: 3.2.0-dev -built on: Thu Aug 24 11:01:14 2023 UTC -options: bn(64,64) -compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -CPUINFO: OPENSSL_armcap=0xbd -The 'numbers' are in 1000s of bytes per second processed. -type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes -AES-192-GCM 439175.20k 1197895.53k 1897890.56k 2435461.12k 2709321.05k 2729203.03k -Doing AES-256-GCM ops for 3s on 16 size blocks: 77931801 AES-256-GCM ops in 2.99s -Doing AES-256-GCM ops for 3s on 64 size blocks: 51856988 AES-256-GCM ops in 3.00s -Doing AES-256-GCM ops for 3s on 256 size blocks: 20377147 AES-256-GCM ops in 3.00s -Doing AES-256-GCM ops for 3s on 1024 size blocks: 6405414 AES-256-GCM ops in 3.00s -Doing AES-256-GCM ops for 3s on 8192 size blocks: 876718 AES-256-GCM ops in 3.00s -Doing AES-256-GCM ops for 3s on 16384 size blocks: 440930 AES-256-GCM ops in 3.00s -version: 3.2.0-dev -built on: Thu Aug 24 11:01:14 2023 UTC -options: bn(64,64) -compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -CPUINFO: OPENSSL_armcap=0xbd -The 'numbers' are in 1000s of bytes per second processed. -type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes -AES-256-GCM 417026.36k 1106282.41k 1738849.88k 2186381.31k 2394024.62k 2408065.71k From 6aac962b39777fd7959a2f52f5f95042efb0c7a2 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 29 Aug 2023 15:31:37 +0200 Subject: [PATCH 34/50] * debugging workflow on another runner --- .github/workflows/ci-arm64.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 7bea52a1a2cb5..3c3da1e8ba39a 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -141,7 +141,8 @@ jobs: if: ${{ inputs.benchmark_snapshot }} needs: [build-openssl-windows-arm64-clangcl, build-openssl-linux-aarch64-gcc] - runs-on: ubuntu-latest +# runs-on: ubuntu-latest + runs-on: [self-hosted, Linux, ARM64, GCC, D2ps_v5] steps: - name: Git checkout From 32ddb97c63b2c29230d7884dd1d1c66540c47576 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 29 Aug 2023 15:34:02 +0200 Subject: [PATCH 35/50] * enable debugging mode --- .github/workflows/ci-arm64.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 3c3da1e8ba39a..e0e3beafdd5f7 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -160,6 +160,7 @@ jobs: - name: Create PR for a benchmark snapshot run: | + set -x git config --global user.name "$GITHUB_ACTOR" git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" git fetch origin ${{ github.event.repository.default_branch }} From a5cd2f3ed4cc2d9c4d081c43d74618c6025f1d37 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 29 Aug 2023 18:59:26 +0200 Subject: [PATCH 36/50] * convert CRLR to LR in Linux env --- .github/workflows/ci-arm64.yml | 2 +- .github/workflows/scripts/benchmark_cmp.sh | 4 ++-- .github/workflows/scripts/benchmark_snapshot.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index e0e3beafdd5f7..1503a8a76a743 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -165,7 +165,7 @@ jobs: git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" git fetch origin ${{ github.event.repository.default_branch }} git checkout origin/${{ github.event.repository.default_branch }} -- .github/workflows/scripts - .github/workflows/scripts/benchmark_snapshot.sh + . .github/workflows/scripts/benchmark_snapshot.sh benchmark_asset=$(date +".assets/benchmark_snapshot_%Y-%m-%d_%H_%M_%S_gcc_vs_clangcl.png") [ ! -d .assets ] && mkdir .assets mv benchmark_snapshot_gcc_vs_clangcl.png $benchmark_asset diff --git a/.github/workflows/scripts/benchmark_cmp.sh b/.github/workflows/scripts/benchmark_cmp.sh index 547ab09964f0a..2f3727107979b 100755 --- a/.github/workflows/scripts/benchmark_cmp.sh +++ b/.github/workflows/scripts/benchmark_cmp.sh @@ -3,8 +3,8 @@ first_benchmark=$1 second_benchmark=$2 -cat $first_benchmark | grep "^Doing" | sed -E "s/ +$//" > b1.txt -cat $second_benchmark | grep "^Doing" | sed -E "s/ +$//" > b2.txt +cat $first_benchmark | grep "^Doing" | sed -E "s/[ \r]+$//" > b1.txt +cat $second_benchmark | grep "^Doing" | sed -E "s/[ \r]+$//" > b2.txt paste b1.txt b2.txt | awk '{match($0, /(^[^:]+)/, g1); match($0, /\t+(Doing[^:]+)/, g2); if (g1[1] != g2[1]) exit -1}' \ || { echo "Benchmark test sets are not identical"; rm b1.txt b2.txt; exit -1; } cat b2.txt | sed -E "s/^[^:]+: /\/\t/" | sed -E "s/ .* / /" > b2_1.txt diff --git a/.github/workflows/scripts/benchmark_snapshot.sh b/.github/workflows/scripts/benchmark_snapshot.sh index ce457104fa557..e7bb310530a97 100755 --- a/.github/workflows/scripts/benchmark_snapshot.sh +++ b/.github/workflows/scripts/benchmark_snapshot.sh @@ -3,7 +3,7 @@ [ ! -d .github/benchmark_snapshot ] && mkdir -p .github/benchmark_snapshot branch=$(git symbolic-ref --short HEAD) benchmark_snapshot=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S_gcc_vs_clang.txt") -.github/workflows/scripts/benchmark_cmp.sh benchmark_arm64_clangcl.txt benchmark_aarch64_gcc.txt > $benchmark_snapshot || exit -1 +. .github/workflows/scripts/benchmark_cmp.sh benchmark_arm64_clangcl.txt benchmark_aarch64_gcc.txt > $benchmark_snapshot || exit -1 chart_payload="cht=bvg&chs=500x375&chtt=Perfromance%20ratio%20comparison&chma=30,30,30,30&chdlp=t&chco=4d89f9,c6d9fd&chbh=r,0,0&chxt=x,x,y&chxl=1:|Benchmark%20test%20%23&chxp=1,50&chds=a&chxs=2N*p&chdl=AArch64%20/%20Arm64%20Windows&chxr=0,0,247,48&chd=t:" chart_payload+=$(cat $benchmark_snapshot \ From c97cbabd9980f8bd18a600fcf75992d2dc442b2e Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 5 Sep 2023 13:41:57 +0200 Subject: [PATCH 37/50] * sync fork by hash --- .github/workflows/sync-and-validate-master.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-and-validate-master.yml b/.github/workflows/sync-and-validate-master.yml index 80f3a9c579ac5..ca55e22fe0583 100644 --- a/.github/workflows/sync-and-validate-master.yml +++ b/.github/workflows/sync-and-validate-master.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - - run: gh repo sync Windows-on-ARM-Experiments/openssl -b master + - run: gh repo sync Windows-on-ARM-Experiments/openssl -b 75ac8f04b78e9e1283b0402a791728ba2728e159 env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 7c4cda85ad22fe2839565f30856376a4a295861b Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 5 Sep 2023 14:05:45 +0200 Subject: [PATCH 38/50] * sync master only after successful validation on master-verifycation branch --- .github/workflows/sync-and-validate-master.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/sync-and-validate-master.yml b/.github/workflows/sync-and-validate-master.yml index ca55e22fe0583..16066be9b2c45 100644 --- a/.github/workflows/sync-and-validate-master.yml +++ b/.github/workflows/sync-and-validate-master.yml @@ -6,18 +6,29 @@ on: - cron: "0 3 * * *" jobs: - sync-fork: + sync-master: name: Sync master + needs: [validate-arm64-windows] runs-on: ubuntu-latest steps: - - run: gh repo sync Windows-on-ARM-Experiments/openssl -b 75ac8f04b78e9e1283b0402a791728ba2728e159 + - run: gh repo sync Windows-on-ARM-Experiments/openssl -b master + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + sync-master-verification: + name: Sync master-verification + runs-on: ubuntu-latest + + steps: + - run: gh repo sync Windows-on-ARM-Experiments/openssl -b master-verification env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} validate-arm64-windows: + needs: [sync-master-verification] name: Valitate the latest Arm64 Windows build needs: sync-fork uses: ./.github/workflows/ci-arm64.yml with: - branch: ${{ github.ref }} + branch: master-verification From a452bcd5b6c97d82ead4d33b162628398897fe73 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 5 Sep 2023 14:08:06 +0200 Subject: [PATCH 39/50] * fix workflow syntax --- .github/workflows/sync-and-validate-master.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/sync-and-validate-master.yml b/.github/workflows/sync-and-validate-master.yml index 16066be9b2c45..ef7d4cc567c22 100644 --- a/.github/workflows/sync-and-validate-master.yml +++ b/.github/workflows/sync-and-validate-master.yml @@ -8,7 +8,7 @@ on: jobs: sync-master: name: Sync master - needs: [validate-arm64-windows] + needs: validate-arm64-windows runs-on: ubuntu-latest steps: @@ -26,9 +26,8 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} validate-arm64-windows: - needs: [sync-master-verification] name: Valitate the latest Arm64 Windows build - needs: sync-fork + needs: validate-arm64-windows uses: ./.github/workflows/ci-arm64.yml with: branch: master-verification From 2d5fbb6d0a2788bb4843736dc544a0c97959cf18 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 5 Sep 2023 14:11:19 +0200 Subject: [PATCH 40/50] * fix dependencies --- .github/workflows/sync-and-validate-master.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-and-validate-master.yml b/.github/workflows/sync-and-validate-master.yml index ef7d4cc567c22..95acc576f7e86 100644 --- a/.github/workflows/sync-and-validate-master.yml +++ b/.github/workflows/sync-and-validate-master.yml @@ -27,7 +27,7 @@ jobs: validate-arm64-windows: name: Valitate the latest Arm64 Windows build - needs: validate-arm64-windows + needs: sync-master-verification uses: ./.github/workflows/ci-arm64.yml with: branch: master-verification From 232678ead3605024ea93f23a8730a41313d061bc Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Tue, 5 Sep 2023 14:19:12 +0200 Subject: [PATCH 41/50] * revert changes back --- .github/workflows/sync-and-validate-master.yml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/.github/workflows/sync-and-validate-master.yml b/.github/workflows/sync-and-validate-master.yml index 95acc576f7e86..80f3a9c579ac5 100644 --- a/.github/workflows/sync-and-validate-master.yml +++ b/.github/workflows/sync-and-validate-master.yml @@ -6,9 +6,8 @@ on: - cron: "0 3 * * *" jobs: - sync-master: + sync-fork: name: Sync master - needs: validate-arm64-windows runs-on: ubuntu-latest steps: @@ -16,18 +15,9 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - sync-master-verification: - name: Sync master-verification - runs-on: ubuntu-latest - - steps: - - run: gh repo sync Windows-on-ARM-Experiments/openssl -b master-verification - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - validate-arm64-windows: name: Valitate the latest Arm64 Windows build - needs: sync-master-verification + needs: sync-fork uses: ./.github/workflows/ci-arm64.yml with: - branch: master-verification + branch: ${{ github.ref }} From 2cafd36d9fc7d79d6bdd0fe715927f5842e63d40 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 6 Sep 2023 17:51:46 +0200 Subject: [PATCH 42/50] * refactor benchmark workflow --- .github/workflows/ci-arm64.yml | 15 +++-- .github/workflows/scripts/benchmark.sh | 62 +++++++++++++++++-- .github/workflows/scripts/benchmark_cmp.sh | 12 ---- .../workflows/scripts/benchmark_snapshot.sh | 14 ----- 4 files changed, 67 insertions(+), 36 deletions(-) delete mode 100755 .github/workflows/scripts/benchmark_cmp.sh delete mode 100755 .github/workflows/scripts/benchmark_snapshot.sh diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 1503a8a76a743..d4844194e4d8a 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -165,14 +165,17 @@ jobs: git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" git fetch origin ${{ github.event.repository.default_branch }} git checkout origin/${{ github.event.repository.default_branch }} -- .github/workflows/scripts - . .github/workflows/scripts/benchmark_snapshot.sh - benchmark_asset=$(date +".assets/benchmark_snapshot_%Y-%m-%d_%H_%M_%S_gcc_vs_clangcl.png") - [ ! -d .assets ] && mkdir .assets - mv benchmark_snapshot_gcc_vs_clangcl.png $benchmark_asset + branch=${{ inputs.branch }} + [[ -z $branch ]] && branch=$(git symbolic-ref --short HEAD) + [ ! -d .github/benchmark_snapshot ] && mkdir -p .github/benchmark_snapshot + benchmark_snapshot_result=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S_gcc_vs_clang.txt") + [ ! -d .assets/benchmark ] && mkdir -p .assets/benchmark + benchmark_image=$(date +".assets/benchmark/benchmark_snapshot_%Y-%m-%d_%H_%M_%S_gcc_vs_clangcl.png") + . .github/workflows/scripts/benchmark.sh benchmark_snapshot $benchmark_snapshot_result $benchmark_image git restore .github/workflows/scripts git fetch origin assets git checkout assets - git add $benchmark_asset + git add $benchmark_image git commit -am "* add a benchmark image" git push git checkout ${{ github.event.repository.default_branch }} -- @@ -187,5 +190,5 @@ jobs: "head": "benchmark_snapshot", "base": "${{ github.event.repository.default_branch }}" }' \ - https://api.github.com/repos/$GITHUB_REPOSITORY/pulls/7) + https://api.github.com/repos/$GITHUB_REPOSITORY/pulls) echo "$PR_RESPONSE" diff --git a/.github/workflows/scripts/benchmark.sh b/.github/workflows/scripts/benchmark.sh index 3ba3cf179d2c2..5b2a99af81f94 100755 --- a/.github/workflows/scripts/benchmark.sh +++ b/.github/workflows/scripts/benchmark.sh @@ -1,7 +1,61 @@ #!/bin/bash -LD_LIBRARY_PATH=$(pwd) apps/openssl speed +command=$1 +shift + +execute_benchmark() { + LD_LIBRARY_PATH=$(pwd) apps/openssl speed + + for i in sm3 sm4 aes-128-gcm aes-192-gcm aes-256-gcm; do + LD_LIBRARY_PATH="$(pwd)" apps/openssl speed -evp $i + done +} + +calculate_Pn_position() { + n=$1 + Pn=$2 + echo "scale=0; ($n - 1) * $Pn / 100 + 1" | bc -l +} + +print_Pn() { + Pns=$1 + benchmark_comparison=$2 + + test_count=$(cat $benchmark_comparison | wc -l) + benchmarks=$(cat $benchmark_comparison | sort -n -k 1) + for i in $Pns; do + echo -n "P$i " + echo "$benchmarks" | sed -n "$(calculate_Pn_position $test_count $i)p" | grep -o "^[^ ]*" + done +} + +benchmark_cmp() { + first_benchmark=$1 + second_benchmark=$2 + + cat $first_benchmark | grep "^Doing" | sed -E "s/[ \r]+$//" > b1.txt + cat $second_benchmark | grep "^Doing" | sed -E "s/[ \r]+$//" > b2.txt + paste b1.txt b2.txt | awk '{match($0, /(^[^:]+)/, g1); match($0, /\t+(Doing[^:]+)/, g2); if (g1[1] != g2[1]) exit -1}' \ + || { echo "Benchmark test sets are not identical"; rm b1.txt b2.txt; exit -1; } + cat b2.txt | sed -E "s/^[^:]+: /\/\t/" | sed -E "s/ .* / /" > b2_1.txt + paste b1.txt b2_1.txt | awk '{match($0, /: ([0-9]+)/, g1); match($0, /([\.0-9]+)s\t\//, g2); match($0, /\/\t([0-9]+) /, g3); match($0, /([\.0-9]+)s$/, g4); printf "%f %s\n", (g3[1] / g4[1]) / (g1[1] / g2[1]), $0}' + rm b1.txt b2.txt b2_1.txt +} + +benchmark_snapshot() { + benchmark_snapshot_result=$1 + benchmark_image=$2 + + benchmark_cmp benchmark_arm64_clangcl.txt benchmark_aarch64_gcc.txt > $benchmark_snapshot_result || exit -1 + + chart_payload="cht=bvg&chs=500x375&chtt=Perfromance%20ratio%20comparison&chma=30,30,30,30&chdlp=t&chco=4d89f9,c6d9fd&chbh=r,0,0&chxt=x,x,y&chxl=1:|Benchmark%20test%20%23&chxp=1,50&chds=a&chxs=2N*p&chdl=AArch64%20/%20Arm64%20Windows&chxr=0,0,247,48&chd=t:" + chart_payload+=$(cat $benchmark_snapshot_result \ + | sort -n -r -k 1 \ + | awk '{val = $1; if (val >= 1) val -= 1; else val = -1/val + 1; printf "%f,", val}') + chart_payload="${chart_payload%?}" + + curl -X POST -d "$chart_payload" https://chart.googleapis.com/chart > $benchmark_image +} + +$command "$@" -for i in sm3 sm4 aes-128-gcm aes-192-gcm aes-256-gcm; do - LD_LIBRARY_PATH="$(pwd)" apps/openssl speed -evp $i -done diff --git a/.github/workflows/scripts/benchmark_cmp.sh b/.github/workflows/scripts/benchmark_cmp.sh deleted file mode 100755 index 2f3727107979b..0000000000000 --- a/.github/workflows/scripts/benchmark_cmp.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -first_benchmark=$1 -second_benchmark=$2 - -cat $first_benchmark | grep "^Doing" | sed -E "s/[ \r]+$//" > b1.txt -cat $second_benchmark | grep "^Doing" | sed -E "s/[ \r]+$//" > b2.txt -paste b1.txt b2.txt | awk '{match($0, /(^[^:]+)/, g1); match($0, /\t+(Doing[^:]+)/, g2); if (g1[1] != g2[1]) exit -1}' \ - || { echo "Benchmark test sets are not identical"; rm b1.txt b2.txt; exit -1; } -cat b2.txt | sed -E "s/^[^:]+: /\/\t/" | sed -E "s/ .* / /" > b2_1.txt -paste b1.txt b2_1.txt | awk '{match($0, /: ([0-9]+)/, g1); match($0, /([\.0-9]+)s\t\//, g2); match($0, /\/\t([0-9]+) /, g3); match($0, /([\.0-9]+)s$/, g4); printf "%f %s\n", (g3[1] / g4[1]) / (g1[1] / g2[1]), $0}' -rm b1.txt b2.txt b2_1.txt diff --git a/.github/workflows/scripts/benchmark_snapshot.sh b/.github/workflows/scripts/benchmark_snapshot.sh deleted file mode 100755 index e7bb310530a97..0000000000000 --- a/.github/workflows/scripts/benchmark_snapshot.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -[ ! -d .github/benchmark_snapshot ] && mkdir -p .github/benchmark_snapshot -branch=$(git symbolic-ref --short HEAD) -benchmark_snapshot=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S_gcc_vs_clang.txt") -. .github/workflows/scripts/benchmark_cmp.sh benchmark_arm64_clangcl.txt benchmark_aarch64_gcc.txt > $benchmark_snapshot || exit -1 - -chart_payload="cht=bvg&chs=500x375&chtt=Perfromance%20ratio%20comparison&chma=30,30,30,30&chdlp=t&chco=4d89f9,c6d9fd&chbh=r,0,0&chxt=x,x,y&chxl=1:|Benchmark%20test%20%23&chxp=1,50&chds=a&chxs=2N*p&chdl=AArch64%20/%20Arm64%20Windows&chxr=0,0,247,48&chd=t:" -chart_payload+=$(cat $benchmark_snapshot \ - | sort -n -r -k 1 \ - | awk '{val = $1; if (val >= 1) val -= 1; else val = -1/val + 1; printf "%f,", val}') -chart_payload="${chart_payload%?}" - -curl -X POST -d "$chart_payload" https://chart.googleapis.com/chart > benchmark_snapshot_gcc_vs_clangcl.png From d2e7a34234379d66285f85024f3059f016c52a13 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 6 Sep 2023 18:01:09 +0200 Subject: [PATCH 43/50] * add "execute benchmark" switch --- .github/workflows/ci-arm64.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index d4844194e4d8a..32cf9bc5a0763 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -24,6 +24,11 @@ on: required: false default: true type: boolean + benchmark: + description: 'Execute benchmark' + required: false + default: true + type: boolean benchmark_snapshot: description: 'Create benchmark snapshot' required: false @@ -66,7 +71,7 @@ jobs: - name: Archive openssl_windows_arm64_msvc_benchmark.zip uses: actions/upload-artifact@v3 - if: ${{ inputs.benchmark_snapshot }} + if: ${{ inputs.benchmark} || ${{ inputs.benchmark_snapshot }} with: name: openssl_windows_arm64_msvc_benchmark.zip path: benchmark_arm64_msvc.txt @@ -101,7 +106,7 @@ jobs: - name: Archive openssl_windows_arm64_clangcl_benchmark.zip uses: actions/upload-artifact@v3 - if: ${{ inputs.benchmark_snapshot }} + if: ${{ inputs.benchmark} || ${{ inputs.benchmark_snapshot }} with: name: openssl_windows_arm64_clangcl_benchmark.zip path: benchmark_arm64_clangcl.txt @@ -131,7 +136,7 @@ jobs: - name: Archive openssl_linux_aarch64_gcc_benchmark.zip uses: actions/upload-artifact@v3 - if: ${{ inputs.benchmark_snapshot }} + if: ${{ inputs.benchmark} || ${{ inputs.benchmark_snapshot }} with: name: openssl_linux_aarch64_gcc_benchmark.zip path: benchmark_aarch64_gcc.txt From 8a33bc18bbe8b6d2fb23db583a0b4cf3d23f426b Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 6 Sep 2023 18:20:16 +0200 Subject: [PATCH 44/50] * fix workflow syntax --- .github/workflows/ci-arm64.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 32cf9bc5a0763..13b11a801be01 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -71,7 +71,7 @@ jobs: - name: Archive openssl_windows_arm64_msvc_benchmark.zip uses: actions/upload-artifact@v3 - if: ${{ inputs.benchmark} || ${{ inputs.benchmark_snapshot }} + if: ${{ inputs.benchmark }} || ${{ inputs.benchmark_snapshot }} with: name: openssl_windows_arm64_msvc_benchmark.zip path: benchmark_arm64_msvc.txt @@ -106,7 +106,7 @@ jobs: - name: Archive openssl_windows_arm64_clangcl_benchmark.zip uses: actions/upload-artifact@v3 - if: ${{ inputs.benchmark} || ${{ inputs.benchmark_snapshot }} + if: ${{ inputs.benchmark }} || ${{ inputs.benchmark_snapshot }} with: name: openssl_windows_arm64_clangcl_benchmark.zip path: benchmark_arm64_clangcl.txt @@ -136,7 +136,7 @@ jobs: - name: Archive openssl_linux_aarch64_gcc_benchmark.zip uses: actions/upload-artifact@v3 - if: ${{ inputs.benchmark} || ${{ inputs.benchmark_snapshot }} + if: ${{ inputs.benchmark }} || ${{ inputs.benchmark_snapshot }} with: name: openssl_linux_aarch64_gcc_benchmark.zip path: benchmark_aarch64_gcc.txt From 61cfb9178be149e4cd30ecbac2f88e4bcd66ea6f Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 13 Sep 2023 14:55:49 +0200 Subject: [PATCH 45/50] * add benchmark regression verification --- ...ter_2023-08-29_22_56_01_gcc_vs_clangcl.txt | 294 ++++++++++++++++++ .github/workflows/ci-arm64.yml | 35 ++- .github/workflows/scripts/benchmark.sh | 16 + 3 files changed, 343 insertions(+), 2 deletions(-) create mode 100644 .github/benchmark_snapshot/master_2023-08-29_22_56_01_gcc_vs_clangcl.txt diff --git a/.github/benchmark_snapshot/master_2023-08-29_22_56_01_gcc_vs_clangcl.txt b/.github/benchmark_snapshot/master_2023-08-29_22_56_01_gcc_vs_clangcl.txt new file mode 100644 index 0000000000000..9912563194987 --- /dev/null +++ b/.github/benchmark_snapshot/master_2023-08-29_22_56_01_gcc_vs_clangcl.txt @@ -0,0 +1,294 @@ +1.915540 Doing md5 ops for 3s on 16 size blocks: 5501810 md5 ops in 3.02s / 10434245 2.99s +1.598221 Doing md5 ops for 3s on 64 size blocks: 4868966 md5 ops in 2.97s / 7860289 3.00s +1.341381 Doing md5 ops for 3s on 256 size blocks: 3267882 md5 ops in 3.02s / 4354445 3.00s +1.124551 Doing md5 ops for 3s on 1024 size blocks: 1404726 md5 ops in 3.02s / 1569224 3.00s +1.023159 Doing md5 ops for 3s on 8192 size blocks: 221851 md5 ops in 3.02s / 224734 2.99s +1.011355 Doing md5 ops for 3s on 16384 size blocks: 113144 md5 ops in 3.02s / 113671 3.00s +2.198799 Doing sha1 ops for 3s on 16 size blocks: 6234605 sha1 ops in 3.02s / 13617856 3.00s +2.019163 Doing sha1 ops for 3s on 64 size blocks: 6063738 sha1 ops in 3.02s / 12162589 3.00s +1.716532 Doing sha1 ops for 3s on 256 size blocks: 5034273 sha1 ops in 3.02s / 8555646 2.99s +1.325054 Doing sha1 ops for 3s on 1024 size blocks: 2956965 sha1 ops in 3.02s / 3892190 3.00s +1.056189 Doing sha1 ops for 3s on 8192 size blocks: 613589 sha1 ops in 3.02s / 643774 3.00s +1.030834 Doing sha1 ops for 3s on 16384 size blocks: 321735 sha1 ops in 3.02s / 329459 3.00s +2.333756 Doing sha256 ops for 3s on 16 size blocks: 6011829 sha256 ops in 3.02s / 13937226 3.00s +2.150162 Doing sha256 ops for 3s on 64 size blocks: 5853751 sha256 ops in 3.02s / 12461484 2.99s +1.803882 Doing sha256 ops for 3s on 256 size blocks: 4899024 sha256 ops in 3.02s / 8778735 3.00s +1.370460 Doing sha256 ops for 3s on 1024 size blocks: 2962571 sha256 ops in 3.02s / 4033196 3.00s +1.065253 Doing sha256 ops for 3s on 8192 size blocks: 632273 sha256 ops in 3.02s / 669070 3.00s +1.034032 Doing sha256 ops for 3s on 16384 size blocks: 333465 sha256 ops in 3.02s / 342530 3.00s +1.621973 Doing sha512 ops for 3s on 16 size blocks: 4062400 sha512 ops in 3.02s / 6545467 3.00s +1.629927 Doing sha512 ops for 3s on 64 size blocks: 4053038 sha512 ops in 3.02s / 6562406 3.00s +1.292911 Doing sha512 ops for 3s on 256 size blocks: 2410398 sha512 ops in 3.02s / 3095791 3.00s +1.118424 Doing sha512 ops for 3s on 1024 size blocks: 1071630 sha512 ops in 3.00s / 1194542 2.99s +1.023830 Doing sha512 ops for 3s on 8192 size blocks: 174316 sha512 ops in 3.02s / 177288 3.00s +1.015099 Doing sha512 ops for 3s on 16384 size blocks: 89176 sha512 ops in 3.02s / 89923 3.00s +1.636656 Doing rmd160 ops for 3s on 16 size blocks: 4953715 rmd160 ops in 3.02s / 8053836 3.00s +1.384024 Doing rmd160 ops for 3s on 64 size blocks: 4023490 rmd160 ops in 3.02s / 5531730 3.00s +1.134477 Doing rmd160 ops for 3s on 256 size blocks: 2490652 rmd160 ops in 3.02s / 2806874 3.00s +0.966040 Doing rmd160 ops for 3s on 1024 size blocks: 987724 rmd160 ops in 3.02s / 944702 2.99s +0.892396 Doing rmd160 ops for 3s on 8192 size blocks: 148752 rmd160 ops in 3.02s / 131427 2.99s +0.883242 Doing rmd160 ops for 3s on 16384 size blocks: 75534 rmd160 ops in 3.02s / 66273 3.00s +1.737348 Doing hmac(md5) ops for 3s on 16 size blocks: 4031828 hmac(md5) ops in 3.02s / 6958299 3.00s +1.592216 Doing hmac(md5) ops for 3s on 64 size blocks: 3620365 hmac(md5) ops in 3.02s / 5726229 3.00s +1.373959 Doing hmac(md5) ops for 3s on 256 size blocks: 2643202 hmac(md5) ops in 3.02s / 3607601 3.00s +1.153565 Doing hmac(md5) ops for 3s on 1024 size blocks: 1273928 hmac(md5) ops in 3.02s / 1459827 3.00s +1.026929 Doing hmac(md5) ops for 3s on 8192 size blocks: 218206 hmac(md5) ops in 3.02s / 222598 3.00s +1.014790 Doing hmac(md5) ops for 3s on 16384 size blocks: 112148 hmac(md5) ops in 3.02s / 113053 3.00s +1.080252 Doing des-ede3 ops for 3s on 16 size blocks: 5166431 des-ede3 ops in 3.02s / 5544088 3.00s +1.071355 Doing des-ede3 ops for 3s on 64 size blocks: 1331150 des-ede3 ops in 3.02s / 1416689 3.00s +1.069987 Doing des-ede3 ops for 3s on 256 size blocks: 335657 des-ede3 ops in 3.02s / 356770 3.00s +1.069703 Doing des-ede3 ops for 3s on 1024 size blocks: 84080 des-ede3 ops in 3.02s / 89345 3.00s +1.070356 Doing des-ede3 ops for 3s on 8192 size blocks: 10511 des-ede3 ops in 3.02s / 11176 3.00s +1.069051 Doing des-ede3 ops for 3s on 16384 size blocks: 5228 des-ede3 ops in 3.00s / 5589 3.00s +4.966245 Doing aes-128-cbc ops for 3s on 16 size blocks: 35690293 aes-128-cbc ops in 3.02s / 175486001 2.99s +7.505395 Doing aes-128-cbc ops for 3s on 64 size blocks: 11227448 aes-128-cbc ops in 3.02s / 83708376 3.00s +8.707570 Doing aes-128-cbc ops for 3s on 256 size blocks: 2975482 aes-128-cbc ops in 3.02s / 25737634 3.00s +9.048896 Doing aes-128-cbc ops for 3s on 1024 size blocks: 763784 aes-128-cbc ops in 3.02s / 6842746 2.99s +9.136596 Doing aes-128-cbc ops for 3s on 8192 size blocks: 96243 aes-128-cbc ops in 3.02s / 873510 3.00s +9.148891 Doing aes-128-cbc ops for 3s on 16384 size blocks: 48164 aes-128-cbc ops in 3.02s / 437729 3.00s +5.185514 Doing aes-192-cbc ops for 3s on 16 size blocks: 31964320 aes-192-cbc ops in 3.02s / 164653723 3.00s +7.547524 Doing aes-192-cbc ops for 3s on 64 size blocks: 9748826 aes-192-cbc ops in 3.02s / 73092218 3.00s +8.724062 Doing aes-192-cbc ops for 3s on 256 size blocks: 2512864 aes-192-cbc ops in 3.02s / 21777201 3.00s +8.721436 Doing aes-192-cbc ops for 3s on 1024 size blocks: 656190 aes-192-cbc ops in 3.02s / 5685019 3.00s +8.861720 Doing aes-192-cbc ops for 3s on 8192 size blocks: 82760 aes-192-cbc ops in 3.02s / 728539 3.00s +8.877680 Doing aes-192-cbc ops for 3s on 16384 size blocks: 41383 aes-192-cbc ops in 3.02s / 364952 3.00s +5.523235 Doing aes-256-cbc ops for 3s on 16 size blocks: 28755442 aes-256-cbc ops in 3.02s / 157771243 3.00s +7.527890 Doing aes-256-cbc ops for 3s on 64 size blocks: 8622194 aes-256-cbc ops in 3.02s / 64477084 3.00s +8.388503 Doing aes-256-cbc ops for 3s on 256 size blocks: 2258464 aes-256-cbc ops in 3.02s / 18819667 3.00s +8.597516 Doing aes-256-cbc ops for 3s on 1024 size blocks: 576497 aes-256-cbc ops in 3.02s / 4923618 3.00s +8.671196 Doing aes-256-cbc ops for 3s on 8192 size blocks: 72545 aes-256-cbc ops in 3.02s / 624886 3.00s +8.679941 Doing aes-256-cbc ops for 3s on 16384 size blocks: 36290 aes-256-cbc ops in 3.02s / 312909 3.00s +0.996374 Doing camellia-128-cbc ops for 3s on 16 size blocks: 23892381 camellia-128-cbc ops in 3.00s / 23805756 3.00s +0.916861 Doing camellia-128-cbc ops for 3s on 64 size blocks: 6902648 camellia-128-cbc ops in 3.02s / 6286859 3.00s +0.892017 Doing camellia-128-cbc ops for 3s on 256 size blocks: 1797951 camellia-128-cbc ops in 3.02s / 1593182 3.00s +0.881742 Doing camellia-128-cbc ops for 3s on 1024 size blocks: 457067 camellia-128-cbc ops in 3.02s / 400346 3.00s +0.877930 Doing camellia-128-cbc ops for 3s on 8192 size blocks: 57427 camellia-128-cbc ops in 3.02s / 50083 3.00s +0.879439 Doing camellia-128-cbc ops for 3s on 16384 size blocks: 28698 camellia-128-cbc ops in 3.02s / 25071 3.00s +0.968279 Doing camellia-192-cbc ops for 3s on 16 size blocks: 19553732 camellia-192-cbc ops in 3.02s / 18808076 3.00s +0.921898 Doing camellia-192-cbc ops for 3s on 64 size blocks: 5376080 camellia-192-cbc ops in 3.02s / 4923377 3.00s +0.903581 Doing camellia-192-cbc ops for 3s on 256 size blocks: 1385804 camellia-192-cbc ops in 3.02s / 1243893 3.00s +0.896172 Doing camellia-192-cbc ops for 3s on 1024 size blocks: 350793 camellia-192-cbc ops in 3.02s / 312289 3.00s +0.893697 Doing camellia-192-cbc ops for 3s on 8192 size blocks: 44029 camellia-192-cbc ops in 3.02s / 39088 3.00s +0.893738 Doing camellia-192-cbc ops for 3s on 16384 size blocks: 22018 camellia-192-cbc ops in 3.02s / 19548 3.00s +0.987869 Doing camellia-256-cbc ops for 3s on 16 size blocks: 19165189 camellia-256-cbc ops in 3.02s / 18807310 3.00s +0.921729 Doing camellia-256-cbc ops for 3s on 64 size blocks: 5377239 camellia-256-cbc ops in 3.02s / 4923532 3.00s +0.903801 Doing camellia-256-cbc ops for 3s on 256 size blocks: 1385270 camellia-256-cbc ops in 3.02s / 1243717 3.00s +0.891172 Doing camellia-256-cbc ops for 3s on 1024 size blocks: 348071 camellia-256-cbc ops in 2.98s / 312273 3.00s +0.893925 Doing camellia-256-cbc ops for 3s on 8192 size blocks: 44020 camellia-256-cbc ops in 3.02s / 39090 3.00s +0.893860 Doing camellia-256-cbc ops for 3s on 16384 size blocks: 22015 camellia-256-cbc ops in 3.02s / 19548 3.00s +4.062451 Doing ghash ops for 3s on 16 size blocks: 31819402 ghash ops in 3.02s / 128408714 3.00s +10.464100 Doing ghash ops for 3s on 64 size blocks: 10336863 ghash ops in 3.02s / 107449639 3.00s +18.610173 Doing ghash ops for 3s on 256 size blocks: 2765474 ghash ops in 3.02s / 51125115 3.00s +23.575830 Doing ghash ops for 3s on 1024 size blocks: 711443 ghash ops in 3.02s / 16661781 3.00s +25.645476 Doing ghash ops for 3s on 8192 size blocks: 89711 ghash ops in 3.02s / 2285445 3.00s +25.739809 Doing ghash ops for 3s on 16384 size blocks: 44917 ghash ops in 3.02s / 1144670 2.99s +2.015328 Doing rand ops for 3s on 16 size blocks: 2849181 rand ops in 3.02s / 4639259 2.44s +2.559332 Doing rand ops for 3s on 64 size blocks: 2267132 rand ops in 3.02s / 4534282 2.36s +4.008597 Doing rand ops for 3s on 256 size blocks: 1246915 rand ops in 3.02s / 4170833 2.52s +8.097891 Doing rand ops for 3s on 1024 size blocks: 447136 rand ops in 3.02s / 3045358 2.54s +14.355020 Doing rand ops for 3s on 8192 size blocks: 64050 rand ops in 3.02s / 876816 2.88s +15.365788 Doing rand ops for 3s on 16384 size blocks: 32388 rand ops in 3.02s / 482836 2.93s +1.095453 Doing 512 bits private rsa sign ops for 10s: 132030 512 bits private RSA sign ops in 10.02s / 144344 10.00s +1.214464 Doing 512 bits public rsa verify ops for 10s: 1389307 512 bits public RSA verify ops in 10.02s / 1682211 9.99s +1.290740 Doing 512 bits private rsa encrypt ops for 10s: 1168323 512 bits public RSA encrypt ops in 10.02s / 1467367 9.75s +1.186196 Doing 512 bits private rsa decrypt ops for 10s: 111850 512 bits private RSA decrypt ops in 10.00s / 132676 10.00s +1.030596 Doing 1024 bits private rsa sign ops for 10s: 24092 1024 bits private RSA sign ops in 10.02s / 24730 9.98s +1.069603 Doing 1024 bits public rsa verify ops for 10s: 451637 1024 bits public RSA verify ops in 10.02s / 482108 10.00s +1.117928 Doing 1024 bits private rsa encrypt ops for 10s: 414261 1024 bits public RSA encrypt ops in 10.02s / 458030 9.91s +1.048041 Doing 1024 bits private rsa decrypt ops for 10s: 23243 1024 bits private RSA decrypt ops in 10.02s / 24311 10.00s +1.013541 Doing 2048 bits private rsa sign ops for 10s: 3471 2048 bits private RSA sign ops in 10.00s / 3518 10.00s +1.021762 Doing 2048 bits public rsa verify ops for 10s: 125071 2048 bits public RSA verify ops in 9.95s / 128435 10.00s +1.052983 Doing 2048 bits private rsa encrypt ops for 10s: 120051 2048 bits public RSA encrypt ops in 10.00s / 125906 9.96s +1.017273 Doing 2048 bits private rsa decrypt ops for 10s: 3444 2048 bits private RSA decrypt ops in 9.98s / 3507 9.99s +1.009921 Doing 3072 bits private rsa sign ops for 10s: 1122 3072 bits private RSA sign ops in 10.02s / 1132 10.01s +1.011851 Doing 3072 bits public rsa verify ops for 10s: 68152 3072 bits public RSA verify ops in 10.02s / 68822 10.00s +1.032787 Doing 3072 bits private rsa encrypt ops for 10s: 66115 3072 bits public RSA encrypt ops in 10.02s / 67942 9.97s +1.012534 Doing 3072 bits private rsa decrypt ops for 10s: 1117 3072 bits private RSA decrypt ops in 10.00s / 1131 10.00s +1.009137 Doing 4096 bits private rsa sign ops for 10s: 492 4096 bits private RSA sign ops in 10.02s / 496 10.01s +1.007846 Doing 4096 bits public rsa verify ops for 10s: 40105 4096 bits public RSA verify ops in 10.02s / 40339 10.00s +1.025101 Doing 4096 bits private rsa encrypt ops for 10s: 39177 4096 bits public RSA encrypt ops in 10.02s / 39960 9.97s +1.008110 Doing 4096 bits private rsa decrypt ops for 10s: 492 4096 bits private RSA decrypt ops in 10.02s / 495 10.00s +1.005982 Doing 7680 bits private rsa sign ops for 10s: 97 7680 bits private RSA sign ops in 10.09s / 97 10.03s +1.003295 Doing 7680 bits public rsa verify ops for 10s: 12138 7680 bits public RSA verify ops in 10.00s / 12178 10.00s +1.012360 Doing 7680 bits private rsa encrypt ops for 10s: 12005 7680 bits public RSA encrypt ops in 10.02s / 12117 9.99s +1.005982 Doing 7680 bits private rsa decrypt ops for 10s: 97 7680 bits private RSA decrypt ops in 10.09s / 97 10.03s +1.004721 Doing 15360 bits private rsa sign ops for 10s: 14 15360 bits private RSA sign ops in 10.64s / 14 10.59s +1.002907 Doing 15360 bits public rsa verify ops for 10s: 3147 15360 bits public RSA verify ops in 10.02s / 3153 10.01s +1.006802 Doing 15360 bits private rsa encrypt ops for 10s: 3130 15360 bits public RSA encrypt ops in 10.02s / 3145 10.00s +1.003774 Doing 15360 bits private rsa decrypt ops for 10s: 14 15360 bits private RSA decrypt ops in 10.64s / 14 10.60s +1.088703 Doing 1024 bits sign dsa ops for 10s: 30263 1024 bits DSA sign ops in 10.02s / 32783 9.97s +1.051599 Doing 1024 bits verify dsa ops for 10s: 36626 1024 bits DSA verify ops in 10.02s / 38439 10.00s +1.028904 Doing 2048 bits sign dsa ops for 10s: 9255 2048 bits DSA sign ops in 10.02s / 9494 9.99s +1.009057 Doing 2048 bits verify dsa ops for 10s: 10048 2048 bits DSA verify ops in 10.00s / 10139 10.00s +1.367249 Doing 160 bits sign ecdsa ops for 10s: 26608 160 bits ECDSA sign ops in 10.00s / 36307 9.98s +1.410230 Doing 160 bits verify ecdsa ops for 10s: 27832 160 bits ECDSA verify ops in 10.02s / 39132 9.99s +1.366094 Doing 192 bits sign ecdsa ops for 10s: 21969 192 bits ECDSA sign ops in 10.02s / 29832 9.96s +1.411503 Doing 192 bits verify ecdsa ops for 10s: 23279 192 bits ECDSA verify ops in 10.02s / 32760 9.99s +1.257850 Doing 224 bits sign ecdsa ops for 10s: 14751 224 bits ECDSA sign ops in 10.02s / 18499 9.99s +1.295510 Doing 224 bits verify ecdsa ops for 10s: 16808 224 bits ECDSA verify ops in 10.02s / 21688 9.98s +1.144125 Doing 256 bits sign ecdsa ops for 10s: 199179 256 bits ECDSA sign ops in 10.02s / 226521 9.96s +1.033222 Doing 256 bits verify ecdsa ops for 10s: 64623 256 bits ECDSA verify ops in 10.02s / 66570 9.99s +1.131986 Doing 384 bits sign ecdsa ops for 10s: 4801 384 bits ECDSA sign ops in 9.98s / 5451 10.01s +1.170867 Doing 384 bits verify ecdsa ops for 10s: 5999 384 bits ECDSA verify ops in 10.02s / 7003 9.99s +1.067609 Doing 521 bits sign ecdsa ops for 10s: 1863 521 bits ECDSA sign ops in 10.02s / 1983 9.99s +1.088547 Doing 521 bits verify ecdsa ops for 10s: 2466 521 bits ECDSA verify ops in 10.02s / 2679 10.00s +1.408725 Doing 163 bits sign ecdsa ops for 10s: 18380 163 bits ECDSA sign ops in 10.02s / 25789 9.98s +1.400831 Doing 163 bits verify ecdsa ops for 10s: 9336 163 bits ECDSA verify ops in 10.02s / 13039 9.99s +1.300256 Doing 233 bits sign ecdsa ops for 10s: 13214 233 bits ECDSA sign ops in 10.02s / 17113 9.98s +1.298050 Doing 233 bits verify ecdsa ops for 10s: 6730 233 bits ECDSA verify ops in 10.02s / 8701 9.98s +1.265320 Doing 283 bits sign ecdsa ops for 10s: 6507 283 bits ECDSA sign ops in 10.02s / 8217 10.00s +1.266941 Doing 283 bits verify ecdsa ops for 10s: 3303 283 bits ECDSA verify ops in 10.02s / 4168 9.98s +1.223545 Doing 409 bits sign ecdsa ops for 10s: 3151 409 bits ECDSA sign ops in 10.02s / 3840 9.98s +1.220993 Doing 409 bits verify ecdsa ops for 10s: 1606 409 bits ECDSA verify ops in 10.02s / 1957 10.00s +1.267440 Doing 571 bits sign ecdsa ops for 10s: 1442 571 bits ECDSA sign ops in 10.02s / 1824 10.00s +1.265208 Doing 571 bits verify ecdsa ops for 10s: 735 571 bits ECDSA verify ops in 10.02s / 929 10.01s +1.417959 Doing 163 bits sign ecdsa ops for 10s: 17326 163 bits ECDSA sign ops in 10.02s / 24494 9.99s +1.411430 Doing 163 bits verify ecdsa ops for 10s: 8800 163 bits ECDSA verify ops in 10.02s / 12371 9.98s +1.305500 Doing 233 bits sign ecdsa ops for 10s: 12507 233 bits ECDSA sign ops in 10.02s / 16279 9.99s +1.300107 Doing 233 bits verify ecdsa ops for 10s: 6367 233 bits ECDSA verify ops in 10.02s / 8253 9.99s +1.256647 Doing 283 bits sign ecdsa ops for 10s: 6040 283 bits ECDSA sign ops in 10.02s / 7575 10.00s +1.255880 Doing 283 bits verify ecdsa ops for 10s: 3066 283 bits ECDSA verify ops in 10.02s / 3839 9.99s +1.216266 Doing 409 bits sign ecdsa ops for 10s: 2876 409 bits ECDSA sign ops in 10.02s / 3491 10.00s +1.214608 Doing 409 bits verify ecdsa ops for 10s: 1461 409 bits ECDSA verify ops in 10.02s / 1771 10.00s +1.259062 Doing 571 bits sign ecdsa ops for 10s: 1298 571 bits ECDSA sign ops in 10.02s / 1631 10.00s +1.260212 Doing 571 bits verify ecdsa ops for 10s: 661 571 bits ECDSA verify ops in 10.02s / 833 10.02s +1.256849 Doing 256 bits sign ecdsa ops for 10s: 13205 256 bits ECDSA sign ops in 10.02s / 16547 9.99s +1.252056 Doing 256 bits verify ecdsa ops for 10s: 14276 256 bits ECDSA verify ops in 10.02s / 17803 9.98s +1.255442 Doing 256 bits sign ecdsa ops for 10s: 13219 256 bits ECDSA sign ops in 10.02s / 16546 9.99s +1.282685 Doing 256 bits verify ecdsa ops for 10s: 14722 256 bits ECDSA verify ops in 10.02s / 18846 10.00s +1.129373 Doing 384 bits sign ecdsa ops for 10s: 4838 384 bits ECDSA sign ops in 10.02s / 5453 10.00s +1.151392 Doing 384 bits verify ecdsa ops for 10s: 5644 384 bits ECDSA verify ops in 10.02s / 6479 9.99s +1.131107 Doing 384 bits sign ecdsa ops for 10s: 4870 384 bits ECDSA sign ops in 10.02s / 5492 9.99s +1.166559 Doing 384 bits verify ecdsa ops for 10s: 6065 384 bits ECDSA verify ops in 10.02s / 7054 9.99s +1.089906 Doing 512 bits sign ecdsa ops for 10s: 2493 512 bits ECDSA sign ops in 10.02s / 2709 9.99s +1.088335 Doing 512 bits verify ecdsa ops for 10s: 3122 512 bits ECDSA verify ops in 10.02s / 3391 10.00s +1.088765 Doing 512 bits sign ecdsa ops for 10s: 2506 512 bits ECDSA sign ops in 10.02s / 2723 10.00s +1.109774 Doing 512 bits verify ecdsa ops for 10s: 3347 512 bits ECDSA verify ops in 10.02s / 3707 10.00s +1.370830 Doing 160 bits ecdh ops for 10s: 28145 160-bits ECDH ops in 10.02s / 38428 9.98s +1.361503 Doing 192 bits ecdh ops for 10s: 23134 192-bits ECDH ops in 10.00s / 31497 10.00s +1.259744 Doing 224 bits ecdh ops for 10s: 15529 224-bits ECDH ops in 10.02s / 19504 9.99s +1.016388 Doing 256 bits ecdh ops for 10s: 85051 256-bits ECDH ops in 10.02s / 86186 9.99s +1.134190 Doing 384 bits ecdh ops for 10s: 5071 384-bits ECDH ops in 10.02s / 5740 10.00s +1.065695 Doing 521 bits ecdh ops for 10s: 1965 521-bits ECDH ops in 10.02s / 2092 10.01s +1.402414 Doing 163 bits ecdh ops for 10s: 19195 163-bits ECDH ops in 10.02s / 26785 9.97s +1.296424 Doing 233 bits ecdh ops for 10s: 13892 233-bits ECDH ops in 10.02s / 17956 9.99s +1.259817 Doing 283 bits ecdh ops for 10s: 6813 283-bits ECDH ops in 10.02s / 8566 10.00s +1.217254 Doing 409 bits ecdh ops for 10s: 3324 409-bits ECDH ops in 10.02s / 4030 9.98s +1.256887 Doing 571 bits ecdh ops for 10s: 1515 571-bits ECDH ops in 9.98s / 1908 10.00s +1.408510 Doing 163 bits ecdh ops for 10s: 18076 163-bits ECDH ops in 10.02s / 25384 9.99s +1.299592 Doing 233 bits ecdh ops for 10s: 13118 233-bits ECDH ops in 10.02s / 16997 9.99s +1.249485 Doing 283 bits ecdh ops for 10s: 6305 283-bits ECDH ops in 10.00s / 7878 10.00s +1.207385 Doing 409 bits ecdh ops for 10s: 3015 409-bits ECDH ops in 10.02s / 3633 10.00s +1.254858 Doing 571 bits ecdh ops for 10s: 1362 571-bits ECDH ops in 10.02s / 1704 9.99s +1.261710 Doing 256 bits ecdh ops for 10s: 13862 256-bits ECDH ops in 10.02s / 17420 9.98s +1.260662 Doing 256 bits ecdh ops for 10s: 13866 256-bits ECDH ops in 10.02s / 17428 9.99s +1.132747 Doing 384 bits ecdh ops for 10s: 5081 384-bits ECDH ops in 10.02s / 5744 10.00s +1.134384 Doing 384 bits ecdh ops for 10s: 5115 384-bits ECDH ops in 10.02s / 5785 9.99s +1.090045 Doing 512 bits ecdh ops for 10s: 2608 512-bits ECDH ops in 10.02s / 2840 10.01s +1.090210 Doing 512 bits ecdh ops for 10s: 2624 512-bits ECDH ops in 10.02s / 2855 10.00s +1.862459 Doing 253 bits ecdh ops for 10s: 40640 253-bits ECDH ops in 9.98s / 75842 10.00s +1.018349 Doing 448 bits ecdh ops for 10s: 20715 448-bits ECDH ops in 10.02s / 21053 10.00s +2.464268 Doing 253 bits sign Ed25519 ops for 10s: 114599 253 bits Ed25519 sign ops in 10.02s / 281839 10.00s +2.480581 Doing 253 bits verify Ed25519 ops for 10s: 35391 253 bits Ed25519 verify ops in 10.02s / 87615 10.00s +1.225898 Doing 456 bits sign Ed448 ops for 10s: 21347 456 bits Ed448 sign ops in 10.02s / 26117 10.00s +1.006482 Doing 456 bits verify Ed448 ops for 10s: 18778 456 bits Ed448 verify ops in 10.02s / 18862 10.00s +1.266629 Doing 256 bits sign CurveSM2 ops for 10s: 13048 256 bits CurveSM2 sign ops in 10.02s / 16461 9.98s +1.288768 Doing 256 bits verify CurveSM2 ops for 10s: 15126 256 bits CurveSM2 verify ops in 10.02s / 19455 10.00s +1.005608 Doing 2048 bits ffdh ops for 10s: 7498 2048-bits FFDH ops in 10.02s / 7525 10.00s +1.005645 Doing 3072 bits ffdh ops for 10s: 3299 3072-bits FFDH ops in 10.02s / 3311 10.00s +1.004073 Doing 4096 bits ffdh ops for 10s: 1628 4096-bits FFDH ops in 10.02s / 1633 10.01s +1.002965 Doing 6144 bits ffdh ops for 10s: 756 6144-bits FFDH ops in 10.00s / 759 10.01s +1.003000 Doing 8192 bits ffdh ops for 10s: 376 8192-bits FFDH ops in 10.03s / 376 10.00s +1.133663 Doing rsa512 keygen ops for 10s: 1679 rsa512 KEM keygen ops in 10.00s / 1892 9.94s +1.447648 Doing rsa512 encaps ops for 10s: 961970 rsa512 KEM encaps ops in 10.02s / 1352289 9.73s +1.100811 Doing rsa512 decaps ops for 10s: 131067 rsa512 KEM decaps ops in 10.02s / 143992 10.00s +1.023077 Doing rsa1024 keygen ops for 10s: 260 rsa1024 KEM keygen ops in 10.02s / 266 10.02s +1.140419 Doing rsa1024 encaps ops for 10s: 391387 rsa1024 KEM encaps ops in 10.02s / 441445 9.91s +1.030468 Doing rsa1024 decaps ops for 10s: 24066 rsa1024 KEM decaps ops in 10.02s / 24725 9.99s +0.965795 Doing rsa2048 keygen ops for 10s: 52 rsa2048 KEM keygen ops in 10.28s / 49 10.03s +1.068979 Doing rsa2048 encaps ops for 10s: 116950 rsa2048 KEM encaps ops in 10.02s / 124518 9.98s +1.010500 Doing rsa2048 decaps ops for 10s: 3471 rsa2048 KEM decaps ops in 9.97s / 3518 10.00s +0.966144 Doing rsa3072 keygen ops for 10s: 14 rsa3072 KEM keygen ops in 11.70s / 12 10.38s +1.044618 Doing rsa3072 encaps ops for 10s: 64858 rsa3072 KEM encaps ops in 10.02s / 67549 9.99s +1.008913 Doing rsa3072 decaps ops for 10s: 1122 rsa3072 KEM decaps ops in 10.00s / 1132 10.00s +1.640822 Doing rsa4096 keygen ops for 10s: 3 rsa4096 KEM keygen ops in 12.38s / 4 10.06s +1.031630 Doing rsa4096 encaps ops for 10s: 38646 rsa4096 KEM encaps ops in 10.02s / 39749 9.99s +1.006085 Doing rsa4096 decaps ops for 10s: 493 rsa4096 KEM decaps ops in 10.02s / 496 10.02s +0.162221 Doing rsa7680 keygen ops for 10s: 2 rsa7680 KEM keygen ops in 19.22s / 1 59.24s +1.012461 Doing rsa7680 encaps ops for 10s: 11973 rsa7680 KEM encaps ops in 10.02s / 12098 10.00s +1.004985 Doing rsa7680 decaps ops for 10s: 97 rsa7680 KEM decaps ops in 10.08s / 97 10.03s +0.693733 Doing rsa15360 keygen ops for 10s: 1 rsa15360 KEM keygen ops in 266.56s / 1 384.24s +1.007451 Doing rsa15360 encaps ops for 10s: 3125 rsa15360 KEM encaps ops in 10.02s / 3142 10.00s +1.002830 Doing rsa15360 decaps ops for 10s: 14 rsa15360 KEM decaps ops in 10.63s / 14 10.60s +1.475379 Doing ECP-256 keygen ops for 10s: 300057 ECP-256 KEM keygen ops in 10.02s / 437396 9.90s +1.059489 Doing ECP-256 encaps ops for 10s: 24558 ECP-256 KEM encaps ops in 10.02s / 25967 10.00s +1.048237 Doing ECP-256 decaps ops for 10s: 26872 ECP-256 KEM decaps ops in 10.02s / 28112 10.00s +1.139053 Doing ECP-384 keygen ops for 10s: 5030 ECP-384 KEM keygen ops in 10.02s / 5718 10.00s +1.149820 Doing ECP-384 encaps ops for 10s: 1593 ECP-384 KEM encaps ops in 10.00s / 1828 9.98s +1.156220 Doing ECP-384 decaps ops for 10s: 2326 ECP-384 KEM decaps ops in 10.02s / 2684 10.00s +1.069620 Doing ECP-521 keygen ops for 10s: 1956 ECP-521 KEM keygen ops in 10.02s / 2088 10.00s +1.079694 Doing ECP-521 encaps ops for 10s: 636 ECP-521 KEM encaps ops in 10.02s / 686 10.01s +1.080701 Doing ECP-521 decaps ops for 10s: 941 ECP-521 KEM decaps ops in 9.97s / 1020 10.00s +2.521667 Doing X25519 keygen ops for 10s: 107927 X25519 KEM keygen ops in 9.97s / 271337 9.94s +2.017939 Doing X25519 encaps ops for 10s: 28533 X25519 KEM encaps ops in 10.02s / 57348 9.98s +1.885194 Doing X25519 decaps ops for 10s: 39184 X25519 KEM decaps ops in 10.02s / 73722 10.00s +1.227315 Doing X448 keygen ops for 10s: 21539 X448 KEM keygen ops in 10.02s / 26356 9.99s +1.132494 Doing X448 encaps ops for 10s: 10366 X448 KEM encaps ops in 10.02s / 11716 10.00s +1.030939 Doing X448 decaps ops for 10s: 20169 X448 KEM decaps ops in 10.00s / 20793 10.00s +1.138485 Doing rsa512 keygen ops for 10s: 1674 rsa512 signature keygen ops in 10.02s / 1883 9.90s +1.094319 Doing rsa512 signs ops for 10s: 132143 rsa512 signature sign ops in 10.02s / 144318 10.00s +1.204879 Doing rsa512 verify ops for 10s: 1400218 rsa512 signature verify ops in 10.02s / 1682042 9.99s +1.019231 Doing rsa1024 keygen ops for 10s: 260 rsa1024 signature keygen ops in 10.03s / 265 10.03s +1.029811 Doing rsa1024 signs ops for 10s: 24095 rsa1024 signature sign ops in 10.02s / 24739 9.99s +1.061203 Doing rsa1024 verify ops for 10s: 455279 rsa1024 signature verify ops in 10.02s / 482179 10.00s +1.061050 Doing rsa2048 keygen ops for 10s: 50 rsa2048 signature keygen ops in 10.11s / 53 10.10s +1.016442 Doing rsa2048 signs ops for 10s: 3469 rsa2048 signature sign ops in 10.02s / 3519 10.00s +1.019971 Doing rsa2048 verify ops for 10s: 125930 rsa2048 signature verify ops in 10.00s / 128445 10.00s +1.250000 Doing rsa3072 keygen ops for 10s: 12 rsa3072 signature keygen ops in 10.16s / 15 10.16s +1.012845 Doing rsa3072 signs ops for 10s: 1121 rsa3072 signature sign ops in 10.02s / 1132 9.99s +1.013457 Doing rsa3072 verify ops for 10s: 68044 rsa3072 signature verify ops in 10.02s / 68822 10.00s +0.997295 Doing rsa4096 keygen ops for 10s: 4 rsa4096 signature keygen ops in 11.06s / 4 11.09s +1.008130 Doing rsa4096 signs ops for 10s: 492 rsa4096 signature sign ops in 10.02s / 496 10.02s +1.008424 Doing rsa4096 verify ops for 10s: 40089 rsa4096 signature verify ops in 10.02s / 40346 10.00s +0.878105 Doing rsa7680 keygen ops for 10s: 1 rsa7680 signature keygen ops in 18.91s / 2 43.07s +1.004985 Doing rsa7680 signs ops for 10s: 97 rsa7680 signature sign ops in 10.08s / 97 10.03s +1.004805 Doing rsa7680 verify ops for 10s: 12145 rsa7680 signature verify ops in 10.02s / 12179 10.00s +5.533539 Doing rsa15360 keygen ops for 10s: 1 rsa15360 signature keygen ops in 125.39s / 1 22.66s +1.002830 Doing rsa15360 signs ops for 10s: 14 rsa15360 signature sign ops in 10.63s / 14 10.60s +1.003911 Doing rsa15360 verify ops for 10s: 3146 rsa15360 signature verify ops in 10.02s / 3152 10.00s +1.053721 Doing dsa1024 keygen ops for 10s: 14622 dsa1024 signature keygen ops in 10.02s / 15346 9.98s +1.073769 Doing dsa1024 signs ops for 10s: 22869 dsa1024 signature sign ops in 10.02s / 24458 9.98s +1.076262 Doing dsa1024 verify ops for 10s: 30993 dsa1024 signature verify ops in 10.02s / 33290 10.00s +1.011429 Doing dsa2048 keygen ops for 10s: 4038 dsa2048 signature keygen ops in 10.02s / 4076 10.00s +1.024685 Doing dsa2048 signs ops for 10s: 7023 dsa2048 signature sign ops in 10.02s / 7182 10.00s +1.014147 Doing dsa2048 verify ops for 10s: 8837 dsa2048 signature verify ops in 9.98s / 8971 9.99s +1.699427 Doing sm3 ops for 3s on 16 size blocks: 4174391 sm3 ops in 3.02s / 7047094 3.00s +1.421275 Doing sm3 ops for 3s on 64 size blocks: 3257484 sm3 ops in 3.02s / 4599120 3.00s +1.230983 Doing sm3 ops for 3s on 256 size blocks: 1836499 sm3 ops in 3.02s / 2245728 3.00s +1.110585 Doing sm3 ops for 3s on 1024 size blocks: 668089 sm3 ops in 3.02s / 737056 3.00s +1.060236 Doing sm3 ops for 3s on 8192 size blocks: 96157 sm3 ops in 3.02s / 101274 3.00s +1.055154 Doing sm3 ops for 3s on 16384 size blocks: 48686 sm3 ops in 3.02s / 51031 3.00s +0.555717 Doing SM4-CBC ops for 3s on 16 size blocks: 17996825 SM4-CBC ops in 3.02s / 9901797 2.99s +0.527789 Doing SM4-CBC ops for 3s on 64 size blocks: 4879450 SM4-CBC ops in 3.02s / 2558265 3.00s +0.519877 Doing SM4-CBC ops for 3s on 256 size blocks: 1247297 SM4-CBC ops in 3.02s / 644147 3.00s +0.515752 Doing SM4-CBC ops for 3s on 1024 size blocks: 314803 SM4-CBC ops in 3.02s / 161285 3.00s +0.514463 Doing SM4-CBC ops for 3s on 8192 size blocks: 39481 SM4-CBC ops in 3.02s / 20177 3.00s +0.514397 Doing SM4-CBC ops for 3s on 16384 size blocks: 19744 SM4-CBC ops in 3.02s / 10089 3.00s +4.461054 Doing AES-128-GCM ops for 3s on 16 size blocks: 19273506 AES-128-GCM ops in 3.02s / 85126038 2.99s +10.539830 Doing AES-128-GCM ops for 3s on 64 size blocks: 5675349 AES-128-GCM ops in 3.02s / 59421073 3.00s +16.604217 Doing AES-128-GCM ops for 3s on 256 size blocks: 1457292 AES-128-GCM ops in 3.02s / 24036946 3.00s +21.153846 Doing AES-128-GCM ops for 3s on 1024 size blocks: 369778 AES-128-GCM ops in 3.02s / 7770424 3.00s +23.463292 Doing AES-128-GCM ops for 3s on 8192 size blocks: 46433 AES-128-GCM ops in 3.02s / 1082256 3.00s +23.714465 Doing AES-128-GCM ops for 3s on 16384 size blocks: 23173 AES-128-GCM ops in 3.02s / 545896 3.00s +4.456006 Doing AES-192-GCM ops for 3s on 16 size blocks: 18092439 AES-192-GCM ops in 3.02s / 79819157 2.99s +10.521798 Doing AES-192-GCM ops for 3s on 64 size blocks: 5261458 AES-192-GCM ops in 3.02s / 54993378 3.00s +16.403785 Doing AES-192-GCM ops for 3s on 256 size blocks: 1354043 AES-192-GCM ops in 3.02s / 22064335 3.00s +20.885440 Doing AES-192-GCM ops for 3s on 1024 size blocks: 342348 AES-192-GCM ops in 3.02s / 7102737 3.00s +23.160048 Doing AES-192-GCM ops for 3s on 8192 size blocks: 43027 AES-192-GCM ops in 3.02s / 989908 3.00s +23.343428 Doing AES-192-GCM ops for 3s on 16384 size blocks: 21516 AES-192-GCM ops in 3.02s / 498931 3.00s +4.607602 Doing AES-256-GCM ops for 3s on 16 size blocks: 17014270 AES-256-GCM ops in 3.02s / 77875817 3.00s +10.606193 Doing AES-256-GCM ops for 3s on 64 size blocks: 4921610 AES-256-GCM ops in 3.02s / 51853851 3.00s +16.259064 Doing AES-256-GCM ops for 3s on 256 size blocks: 1261579 AES-256-GCM ops in 3.02s / 20376252 3.00s +20.189661 Doing AES-256-GCM ops for 3s on 1024 size blocks: 319399 AES-256-GCM ops in 3.02s / 6405852 3.00s +22.031109 Doing AES-256-GCM ops for 3s on 8192 size blocks: 40055 AES-256-GCM ops in 3.02s / 876612 3.00s +22.186437 Doing AES-256-GCM ops for 3s on 16384 size blocks: 20022 AES-256-GCM ops in 3.02s / 441275 3.00s diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 13b11a801be01..7e4f663e4626e 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -29,6 +29,11 @@ on: required: false default: true type: boolean + verify_benchmark: + description: 'Verify benchmark regression' + required: false + default: true + type: boolean benchmark_snapshot: description: 'Create benchmark snapshot' required: false @@ -142,12 +147,38 @@ jobs: path: benchmark_aarch64_gcc.txt retention-days: 3 + verify-benchmark-regression: + if: ${{ inputs.verify_benchmark }} + needs: [build-openssl-windows-arm64-clangcl, build-openssl-linux-aarch64-gcc] + + runs-on: ubuntu-latest + + steps: + - name: Git checkout + uses: actions/checkout@v3 + + - name: Dowload openssl_linux_aarch64_gcc_benchmark.zip + uses: actions/download-artifact@v3 + with: + name: openssl_linux_aarch64_gcc_benchmark.zip + + - name: Dowload openssl_windows_arm64_clangcl_benchmark.zip + uses: actions/download-artifact@v3 + with: + name: openssl_windows_arm64_clangcl_benchmark.zip + + - name: Verify benchmark regression + run: | + set -x + git fetch origin ${{ github.event.repository.default_branch }} + git checkout origin/${{ github.event.repository.default_branch }} -- .github/workflows/scripts + . .github/workflows/scripts/benchmark.sh verify_benchmark_regression + create-benchmark-snapshot: if: ${{ inputs.benchmark_snapshot }} needs: [build-openssl-windows-arm64-clangcl, build-openssl-linux-aarch64-gcc] -# runs-on: ubuntu-latest - runs-on: [self-hosted, Linux, ARM64, GCC, D2ps_v5] + runs-on: ubuntu-latest steps: - name: Git checkout diff --git a/.github/workflows/scripts/benchmark.sh b/.github/workflows/scripts/benchmark.sh index 5b2a99af81f94..7c5bb26b05bc9 100755 --- a/.github/workflows/scripts/benchmark.sh +++ b/.github/workflows/scripts/benchmark.sh @@ -57,5 +57,21 @@ benchmark_snapshot() { curl -X POST -d "$chart_payload" https://chart.googleapis.com/chart > $benchmark_image } +get_latest_benchmark_snapshot () { + echo .github/benchmark_snapshot/$(ls .github/benchmark_snapshot | sort -r -k 1 | head -n 1) +} + +verify_benchmark_regression() { + benchmark_cmp benchmark_arm64_clangcl.txt benchmark_aarch64_gcc.txt > b1 || exit -1 + latest_benchmark_snapshot=$(get_latest_benchmark_snapshot) + echo The latest benchmark snapshot: $latest_benchmark_snapshot + print_Pn "25 50 75 95 99 100" $latest_benchmark_snapshot > Pn_latest + print_Pn "25 50 75 95 99 100" b1 > Pn_current + echo Pn latest_snapshot current percentage_change + paste Pn_latest Pn_current | awk 'begin{max = 0} {change = $4 * 100 / $2 - 100; if (max < change) max = change; printf "%s %s %s %f\n", $1, $2, $4, change} END {if (max > 0.6) print "Potential benchmark regression has been detected"}' > change + cat change + cat change | grep -q "Potential benchmark regression has been detected" && exit 1 || echo "Benchmark regression has not been detected" +} + $command "$@" From faad737a66920d061f27ae4601cec82bc0838eee Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 13 Sep 2023 15:04:02 +0200 Subject: [PATCH 46/50] * remove temporary snapshot --- ...ter_2023-08-29_22_56_01_gcc_vs_clangcl.txt | 294 ------------------ 1 file changed, 294 deletions(-) delete mode 100644 .github/benchmark_snapshot/master_2023-08-29_22_56_01_gcc_vs_clangcl.txt diff --git a/.github/benchmark_snapshot/master_2023-08-29_22_56_01_gcc_vs_clangcl.txt b/.github/benchmark_snapshot/master_2023-08-29_22_56_01_gcc_vs_clangcl.txt deleted file mode 100644 index 9912563194987..0000000000000 --- a/.github/benchmark_snapshot/master_2023-08-29_22_56_01_gcc_vs_clangcl.txt +++ /dev/null @@ -1,294 +0,0 @@ -1.915540 Doing md5 ops for 3s on 16 size blocks: 5501810 md5 ops in 3.02s / 10434245 2.99s -1.598221 Doing md5 ops for 3s on 64 size blocks: 4868966 md5 ops in 2.97s / 7860289 3.00s -1.341381 Doing md5 ops for 3s on 256 size blocks: 3267882 md5 ops in 3.02s / 4354445 3.00s -1.124551 Doing md5 ops for 3s on 1024 size blocks: 1404726 md5 ops in 3.02s / 1569224 3.00s -1.023159 Doing md5 ops for 3s on 8192 size blocks: 221851 md5 ops in 3.02s / 224734 2.99s -1.011355 Doing md5 ops for 3s on 16384 size blocks: 113144 md5 ops in 3.02s / 113671 3.00s -2.198799 Doing sha1 ops for 3s on 16 size blocks: 6234605 sha1 ops in 3.02s / 13617856 3.00s -2.019163 Doing sha1 ops for 3s on 64 size blocks: 6063738 sha1 ops in 3.02s / 12162589 3.00s -1.716532 Doing sha1 ops for 3s on 256 size blocks: 5034273 sha1 ops in 3.02s / 8555646 2.99s -1.325054 Doing sha1 ops for 3s on 1024 size blocks: 2956965 sha1 ops in 3.02s / 3892190 3.00s -1.056189 Doing sha1 ops for 3s on 8192 size blocks: 613589 sha1 ops in 3.02s / 643774 3.00s -1.030834 Doing sha1 ops for 3s on 16384 size blocks: 321735 sha1 ops in 3.02s / 329459 3.00s -2.333756 Doing sha256 ops for 3s on 16 size blocks: 6011829 sha256 ops in 3.02s / 13937226 3.00s -2.150162 Doing sha256 ops for 3s on 64 size blocks: 5853751 sha256 ops in 3.02s / 12461484 2.99s -1.803882 Doing sha256 ops for 3s on 256 size blocks: 4899024 sha256 ops in 3.02s / 8778735 3.00s -1.370460 Doing sha256 ops for 3s on 1024 size blocks: 2962571 sha256 ops in 3.02s / 4033196 3.00s -1.065253 Doing sha256 ops for 3s on 8192 size blocks: 632273 sha256 ops in 3.02s / 669070 3.00s -1.034032 Doing sha256 ops for 3s on 16384 size blocks: 333465 sha256 ops in 3.02s / 342530 3.00s -1.621973 Doing sha512 ops for 3s on 16 size blocks: 4062400 sha512 ops in 3.02s / 6545467 3.00s -1.629927 Doing sha512 ops for 3s on 64 size blocks: 4053038 sha512 ops in 3.02s / 6562406 3.00s -1.292911 Doing sha512 ops for 3s on 256 size blocks: 2410398 sha512 ops in 3.02s / 3095791 3.00s -1.118424 Doing sha512 ops for 3s on 1024 size blocks: 1071630 sha512 ops in 3.00s / 1194542 2.99s -1.023830 Doing sha512 ops for 3s on 8192 size blocks: 174316 sha512 ops in 3.02s / 177288 3.00s -1.015099 Doing sha512 ops for 3s on 16384 size blocks: 89176 sha512 ops in 3.02s / 89923 3.00s -1.636656 Doing rmd160 ops for 3s on 16 size blocks: 4953715 rmd160 ops in 3.02s / 8053836 3.00s -1.384024 Doing rmd160 ops for 3s on 64 size blocks: 4023490 rmd160 ops in 3.02s / 5531730 3.00s -1.134477 Doing rmd160 ops for 3s on 256 size blocks: 2490652 rmd160 ops in 3.02s / 2806874 3.00s -0.966040 Doing rmd160 ops for 3s on 1024 size blocks: 987724 rmd160 ops in 3.02s / 944702 2.99s -0.892396 Doing rmd160 ops for 3s on 8192 size blocks: 148752 rmd160 ops in 3.02s / 131427 2.99s -0.883242 Doing rmd160 ops for 3s on 16384 size blocks: 75534 rmd160 ops in 3.02s / 66273 3.00s -1.737348 Doing hmac(md5) ops for 3s on 16 size blocks: 4031828 hmac(md5) ops in 3.02s / 6958299 3.00s -1.592216 Doing hmac(md5) ops for 3s on 64 size blocks: 3620365 hmac(md5) ops in 3.02s / 5726229 3.00s -1.373959 Doing hmac(md5) ops for 3s on 256 size blocks: 2643202 hmac(md5) ops in 3.02s / 3607601 3.00s -1.153565 Doing hmac(md5) ops for 3s on 1024 size blocks: 1273928 hmac(md5) ops in 3.02s / 1459827 3.00s -1.026929 Doing hmac(md5) ops for 3s on 8192 size blocks: 218206 hmac(md5) ops in 3.02s / 222598 3.00s -1.014790 Doing hmac(md5) ops for 3s on 16384 size blocks: 112148 hmac(md5) ops in 3.02s / 113053 3.00s -1.080252 Doing des-ede3 ops for 3s on 16 size blocks: 5166431 des-ede3 ops in 3.02s / 5544088 3.00s -1.071355 Doing des-ede3 ops for 3s on 64 size blocks: 1331150 des-ede3 ops in 3.02s / 1416689 3.00s -1.069987 Doing des-ede3 ops for 3s on 256 size blocks: 335657 des-ede3 ops in 3.02s / 356770 3.00s -1.069703 Doing des-ede3 ops for 3s on 1024 size blocks: 84080 des-ede3 ops in 3.02s / 89345 3.00s -1.070356 Doing des-ede3 ops for 3s on 8192 size blocks: 10511 des-ede3 ops in 3.02s / 11176 3.00s -1.069051 Doing des-ede3 ops for 3s on 16384 size blocks: 5228 des-ede3 ops in 3.00s / 5589 3.00s -4.966245 Doing aes-128-cbc ops for 3s on 16 size blocks: 35690293 aes-128-cbc ops in 3.02s / 175486001 2.99s -7.505395 Doing aes-128-cbc ops for 3s on 64 size blocks: 11227448 aes-128-cbc ops in 3.02s / 83708376 3.00s -8.707570 Doing aes-128-cbc ops for 3s on 256 size blocks: 2975482 aes-128-cbc ops in 3.02s / 25737634 3.00s -9.048896 Doing aes-128-cbc ops for 3s on 1024 size blocks: 763784 aes-128-cbc ops in 3.02s / 6842746 2.99s -9.136596 Doing aes-128-cbc ops for 3s on 8192 size blocks: 96243 aes-128-cbc ops in 3.02s / 873510 3.00s -9.148891 Doing aes-128-cbc ops for 3s on 16384 size blocks: 48164 aes-128-cbc ops in 3.02s / 437729 3.00s -5.185514 Doing aes-192-cbc ops for 3s on 16 size blocks: 31964320 aes-192-cbc ops in 3.02s / 164653723 3.00s -7.547524 Doing aes-192-cbc ops for 3s on 64 size blocks: 9748826 aes-192-cbc ops in 3.02s / 73092218 3.00s -8.724062 Doing aes-192-cbc ops for 3s on 256 size blocks: 2512864 aes-192-cbc ops in 3.02s / 21777201 3.00s -8.721436 Doing aes-192-cbc ops for 3s on 1024 size blocks: 656190 aes-192-cbc ops in 3.02s / 5685019 3.00s -8.861720 Doing aes-192-cbc ops for 3s on 8192 size blocks: 82760 aes-192-cbc ops in 3.02s / 728539 3.00s -8.877680 Doing aes-192-cbc ops for 3s on 16384 size blocks: 41383 aes-192-cbc ops in 3.02s / 364952 3.00s -5.523235 Doing aes-256-cbc ops for 3s on 16 size blocks: 28755442 aes-256-cbc ops in 3.02s / 157771243 3.00s -7.527890 Doing aes-256-cbc ops for 3s on 64 size blocks: 8622194 aes-256-cbc ops in 3.02s / 64477084 3.00s -8.388503 Doing aes-256-cbc ops for 3s on 256 size blocks: 2258464 aes-256-cbc ops in 3.02s / 18819667 3.00s -8.597516 Doing aes-256-cbc ops for 3s on 1024 size blocks: 576497 aes-256-cbc ops in 3.02s / 4923618 3.00s -8.671196 Doing aes-256-cbc ops for 3s on 8192 size blocks: 72545 aes-256-cbc ops in 3.02s / 624886 3.00s -8.679941 Doing aes-256-cbc ops for 3s on 16384 size blocks: 36290 aes-256-cbc ops in 3.02s / 312909 3.00s -0.996374 Doing camellia-128-cbc ops for 3s on 16 size blocks: 23892381 camellia-128-cbc ops in 3.00s / 23805756 3.00s -0.916861 Doing camellia-128-cbc ops for 3s on 64 size blocks: 6902648 camellia-128-cbc ops in 3.02s / 6286859 3.00s -0.892017 Doing camellia-128-cbc ops for 3s on 256 size blocks: 1797951 camellia-128-cbc ops in 3.02s / 1593182 3.00s -0.881742 Doing camellia-128-cbc ops for 3s on 1024 size blocks: 457067 camellia-128-cbc ops in 3.02s / 400346 3.00s -0.877930 Doing camellia-128-cbc ops for 3s on 8192 size blocks: 57427 camellia-128-cbc ops in 3.02s / 50083 3.00s -0.879439 Doing camellia-128-cbc ops for 3s on 16384 size blocks: 28698 camellia-128-cbc ops in 3.02s / 25071 3.00s -0.968279 Doing camellia-192-cbc ops for 3s on 16 size blocks: 19553732 camellia-192-cbc ops in 3.02s / 18808076 3.00s -0.921898 Doing camellia-192-cbc ops for 3s on 64 size blocks: 5376080 camellia-192-cbc ops in 3.02s / 4923377 3.00s -0.903581 Doing camellia-192-cbc ops for 3s on 256 size blocks: 1385804 camellia-192-cbc ops in 3.02s / 1243893 3.00s -0.896172 Doing camellia-192-cbc ops for 3s on 1024 size blocks: 350793 camellia-192-cbc ops in 3.02s / 312289 3.00s -0.893697 Doing camellia-192-cbc ops for 3s on 8192 size blocks: 44029 camellia-192-cbc ops in 3.02s / 39088 3.00s -0.893738 Doing camellia-192-cbc ops for 3s on 16384 size blocks: 22018 camellia-192-cbc ops in 3.02s / 19548 3.00s -0.987869 Doing camellia-256-cbc ops for 3s on 16 size blocks: 19165189 camellia-256-cbc ops in 3.02s / 18807310 3.00s -0.921729 Doing camellia-256-cbc ops for 3s on 64 size blocks: 5377239 camellia-256-cbc ops in 3.02s / 4923532 3.00s -0.903801 Doing camellia-256-cbc ops for 3s on 256 size blocks: 1385270 camellia-256-cbc ops in 3.02s / 1243717 3.00s -0.891172 Doing camellia-256-cbc ops for 3s on 1024 size blocks: 348071 camellia-256-cbc ops in 2.98s / 312273 3.00s -0.893925 Doing camellia-256-cbc ops for 3s on 8192 size blocks: 44020 camellia-256-cbc ops in 3.02s / 39090 3.00s -0.893860 Doing camellia-256-cbc ops for 3s on 16384 size blocks: 22015 camellia-256-cbc ops in 3.02s / 19548 3.00s -4.062451 Doing ghash ops for 3s on 16 size blocks: 31819402 ghash ops in 3.02s / 128408714 3.00s -10.464100 Doing ghash ops for 3s on 64 size blocks: 10336863 ghash ops in 3.02s / 107449639 3.00s -18.610173 Doing ghash ops for 3s on 256 size blocks: 2765474 ghash ops in 3.02s / 51125115 3.00s -23.575830 Doing ghash ops for 3s on 1024 size blocks: 711443 ghash ops in 3.02s / 16661781 3.00s -25.645476 Doing ghash ops for 3s on 8192 size blocks: 89711 ghash ops in 3.02s / 2285445 3.00s -25.739809 Doing ghash ops for 3s on 16384 size blocks: 44917 ghash ops in 3.02s / 1144670 2.99s -2.015328 Doing rand ops for 3s on 16 size blocks: 2849181 rand ops in 3.02s / 4639259 2.44s -2.559332 Doing rand ops for 3s on 64 size blocks: 2267132 rand ops in 3.02s / 4534282 2.36s -4.008597 Doing rand ops for 3s on 256 size blocks: 1246915 rand ops in 3.02s / 4170833 2.52s -8.097891 Doing rand ops for 3s on 1024 size blocks: 447136 rand ops in 3.02s / 3045358 2.54s -14.355020 Doing rand ops for 3s on 8192 size blocks: 64050 rand ops in 3.02s / 876816 2.88s -15.365788 Doing rand ops for 3s on 16384 size blocks: 32388 rand ops in 3.02s / 482836 2.93s -1.095453 Doing 512 bits private rsa sign ops for 10s: 132030 512 bits private RSA sign ops in 10.02s / 144344 10.00s -1.214464 Doing 512 bits public rsa verify ops for 10s: 1389307 512 bits public RSA verify ops in 10.02s / 1682211 9.99s -1.290740 Doing 512 bits private rsa encrypt ops for 10s: 1168323 512 bits public RSA encrypt ops in 10.02s / 1467367 9.75s -1.186196 Doing 512 bits private rsa decrypt ops for 10s: 111850 512 bits private RSA decrypt ops in 10.00s / 132676 10.00s -1.030596 Doing 1024 bits private rsa sign ops for 10s: 24092 1024 bits private RSA sign ops in 10.02s / 24730 9.98s -1.069603 Doing 1024 bits public rsa verify ops for 10s: 451637 1024 bits public RSA verify ops in 10.02s / 482108 10.00s -1.117928 Doing 1024 bits private rsa encrypt ops for 10s: 414261 1024 bits public RSA encrypt ops in 10.02s / 458030 9.91s -1.048041 Doing 1024 bits private rsa decrypt ops for 10s: 23243 1024 bits private RSA decrypt ops in 10.02s / 24311 10.00s -1.013541 Doing 2048 bits private rsa sign ops for 10s: 3471 2048 bits private RSA sign ops in 10.00s / 3518 10.00s -1.021762 Doing 2048 bits public rsa verify ops for 10s: 125071 2048 bits public RSA verify ops in 9.95s / 128435 10.00s -1.052983 Doing 2048 bits private rsa encrypt ops for 10s: 120051 2048 bits public RSA encrypt ops in 10.00s / 125906 9.96s -1.017273 Doing 2048 bits private rsa decrypt ops for 10s: 3444 2048 bits private RSA decrypt ops in 9.98s / 3507 9.99s -1.009921 Doing 3072 bits private rsa sign ops for 10s: 1122 3072 bits private RSA sign ops in 10.02s / 1132 10.01s -1.011851 Doing 3072 bits public rsa verify ops for 10s: 68152 3072 bits public RSA verify ops in 10.02s / 68822 10.00s -1.032787 Doing 3072 bits private rsa encrypt ops for 10s: 66115 3072 bits public RSA encrypt ops in 10.02s / 67942 9.97s -1.012534 Doing 3072 bits private rsa decrypt ops for 10s: 1117 3072 bits private RSA decrypt ops in 10.00s / 1131 10.00s -1.009137 Doing 4096 bits private rsa sign ops for 10s: 492 4096 bits private RSA sign ops in 10.02s / 496 10.01s -1.007846 Doing 4096 bits public rsa verify ops for 10s: 40105 4096 bits public RSA verify ops in 10.02s / 40339 10.00s -1.025101 Doing 4096 bits private rsa encrypt ops for 10s: 39177 4096 bits public RSA encrypt ops in 10.02s / 39960 9.97s -1.008110 Doing 4096 bits private rsa decrypt ops for 10s: 492 4096 bits private RSA decrypt ops in 10.02s / 495 10.00s -1.005982 Doing 7680 bits private rsa sign ops for 10s: 97 7680 bits private RSA sign ops in 10.09s / 97 10.03s -1.003295 Doing 7680 bits public rsa verify ops for 10s: 12138 7680 bits public RSA verify ops in 10.00s / 12178 10.00s -1.012360 Doing 7680 bits private rsa encrypt ops for 10s: 12005 7680 bits public RSA encrypt ops in 10.02s / 12117 9.99s -1.005982 Doing 7680 bits private rsa decrypt ops for 10s: 97 7680 bits private RSA decrypt ops in 10.09s / 97 10.03s -1.004721 Doing 15360 bits private rsa sign ops for 10s: 14 15360 bits private RSA sign ops in 10.64s / 14 10.59s -1.002907 Doing 15360 bits public rsa verify ops for 10s: 3147 15360 bits public RSA verify ops in 10.02s / 3153 10.01s -1.006802 Doing 15360 bits private rsa encrypt ops for 10s: 3130 15360 bits public RSA encrypt ops in 10.02s / 3145 10.00s -1.003774 Doing 15360 bits private rsa decrypt ops for 10s: 14 15360 bits private RSA decrypt ops in 10.64s / 14 10.60s -1.088703 Doing 1024 bits sign dsa ops for 10s: 30263 1024 bits DSA sign ops in 10.02s / 32783 9.97s -1.051599 Doing 1024 bits verify dsa ops for 10s: 36626 1024 bits DSA verify ops in 10.02s / 38439 10.00s -1.028904 Doing 2048 bits sign dsa ops for 10s: 9255 2048 bits DSA sign ops in 10.02s / 9494 9.99s -1.009057 Doing 2048 bits verify dsa ops for 10s: 10048 2048 bits DSA verify ops in 10.00s / 10139 10.00s -1.367249 Doing 160 bits sign ecdsa ops for 10s: 26608 160 bits ECDSA sign ops in 10.00s / 36307 9.98s -1.410230 Doing 160 bits verify ecdsa ops for 10s: 27832 160 bits ECDSA verify ops in 10.02s / 39132 9.99s -1.366094 Doing 192 bits sign ecdsa ops for 10s: 21969 192 bits ECDSA sign ops in 10.02s / 29832 9.96s -1.411503 Doing 192 bits verify ecdsa ops for 10s: 23279 192 bits ECDSA verify ops in 10.02s / 32760 9.99s -1.257850 Doing 224 bits sign ecdsa ops for 10s: 14751 224 bits ECDSA sign ops in 10.02s / 18499 9.99s -1.295510 Doing 224 bits verify ecdsa ops for 10s: 16808 224 bits ECDSA verify ops in 10.02s / 21688 9.98s -1.144125 Doing 256 bits sign ecdsa ops for 10s: 199179 256 bits ECDSA sign ops in 10.02s / 226521 9.96s -1.033222 Doing 256 bits verify ecdsa ops for 10s: 64623 256 bits ECDSA verify ops in 10.02s / 66570 9.99s -1.131986 Doing 384 bits sign ecdsa ops for 10s: 4801 384 bits ECDSA sign ops in 9.98s / 5451 10.01s -1.170867 Doing 384 bits verify ecdsa ops for 10s: 5999 384 bits ECDSA verify ops in 10.02s / 7003 9.99s -1.067609 Doing 521 bits sign ecdsa ops for 10s: 1863 521 bits ECDSA sign ops in 10.02s / 1983 9.99s -1.088547 Doing 521 bits verify ecdsa ops for 10s: 2466 521 bits ECDSA verify ops in 10.02s / 2679 10.00s -1.408725 Doing 163 bits sign ecdsa ops for 10s: 18380 163 bits ECDSA sign ops in 10.02s / 25789 9.98s -1.400831 Doing 163 bits verify ecdsa ops for 10s: 9336 163 bits ECDSA verify ops in 10.02s / 13039 9.99s -1.300256 Doing 233 bits sign ecdsa ops for 10s: 13214 233 bits ECDSA sign ops in 10.02s / 17113 9.98s -1.298050 Doing 233 bits verify ecdsa ops for 10s: 6730 233 bits ECDSA verify ops in 10.02s / 8701 9.98s -1.265320 Doing 283 bits sign ecdsa ops for 10s: 6507 283 bits ECDSA sign ops in 10.02s / 8217 10.00s -1.266941 Doing 283 bits verify ecdsa ops for 10s: 3303 283 bits ECDSA verify ops in 10.02s / 4168 9.98s -1.223545 Doing 409 bits sign ecdsa ops for 10s: 3151 409 bits ECDSA sign ops in 10.02s / 3840 9.98s -1.220993 Doing 409 bits verify ecdsa ops for 10s: 1606 409 bits ECDSA verify ops in 10.02s / 1957 10.00s -1.267440 Doing 571 bits sign ecdsa ops for 10s: 1442 571 bits ECDSA sign ops in 10.02s / 1824 10.00s -1.265208 Doing 571 bits verify ecdsa ops for 10s: 735 571 bits ECDSA verify ops in 10.02s / 929 10.01s -1.417959 Doing 163 bits sign ecdsa ops for 10s: 17326 163 bits ECDSA sign ops in 10.02s / 24494 9.99s -1.411430 Doing 163 bits verify ecdsa ops for 10s: 8800 163 bits ECDSA verify ops in 10.02s / 12371 9.98s -1.305500 Doing 233 bits sign ecdsa ops for 10s: 12507 233 bits ECDSA sign ops in 10.02s / 16279 9.99s -1.300107 Doing 233 bits verify ecdsa ops for 10s: 6367 233 bits ECDSA verify ops in 10.02s / 8253 9.99s -1.256647 Doing 283 bits sign ecdsa ops for 10s: 6040 283 bits ECDSA sign ops in 10.02s / 7575 10.00s -1.255880 Doing 283 bits verify ecdsa ops for 10s: 3066 283 bits ECDSA verify ops in 10.02s / 3839 9.99s -1.216266 Doing 409 bits sign ecdsa ops for 10s: 2876 409 bits ECDSA sign ops in 10.02s / 3491 10.00s -1.214608 Doing 409 bits verify ecdsa ops for 10s: 1461 409 bits ECDSA verify ops in 10.02s / 1771 10.00s -1.259062 Doing 571 bits sign ecdsa ops for 10s: 1298 571 bits ECDSA sign ops in 10.02s / 1631 10.00s -1.260212 Doing 571 bits verify ecdsa ops for 10s: 661 571 bits ECDSA verify ops in 10.02s / 833 10.02s -1.256849 Doing 256 bits sign ecdsa ops for 10s: 13205 256 bits ECDSA sign ops in 10.02s / 16547 9.99s -1.252056 Doing 256 bits verify ecdsa ops for 10s: 14276 256 bits ECDSA verify ops in 10.02s / 17803 9.98s -1.255442 Doing 256 bits sign ecdsa ops for 10s: 13219 256 bits ECDSA sign ops in 10.02s / 16546 9.99s -1.282685 Doing 256 bits verify ecdsa ops for 10s: 14722 256 bits ECDSA verify ops in 10.02s / 18846 10.00s -1.129373 Doing 384 bits sign ecdsa ops for 10s: 4838 384 bits ECDSA sign ops in 10.02s / 5453 10.00s -1.151392 Doing 384 bits verify ecdsa ops for 10s: 5644 384 bits ECDSA verify ops in 10.02s / 6479 9.99s -1.131107 Doing 384 bits sign ecdsa ops for 10s: 4870 384 bits ECDSA sign ops in 10.02s / 5492 9.99s -1.166559 Doing 384 bits verify ecdsa ops for 10s: 6065 384 bits ECDSA verify ops in 10.02s / 7054 9.99s -1.089906 Doing 512 bits sign ecdsa ops for 10s: 2493 512 bits ECDSA sign ops in 10.02s / 2709 9.99s -1.088335 Doing 512 bits verify ecdsa ops for 10s: 3122 512 bits ECDSA verify ops in 10.02s / 3391 10.00s -1.088765 Doing 512 bits sign ecdsa ops for 10s: 2506 512 bits ECDSA sign ops in 10.02s / 2723 10.00s -1.109774 Doing 512 bits verify ecdsa ops for 10s: 3347 512 bits ECDSA verify ops in 10.02s / 3707 10.00s -1.370830 Doing 160 bits ecdh ops for 10s: 28145 160-bits ECDH ops in 10.02s / 38428 9.98s -1.361503 Doing 192 bits ecdh ops for 10s: 23134 192-bits ECDH ops in 10.00s / 31497 10.00s -1.259744 Doing 224 bits ecdh ops for 10s: 15529 224-bits ECDH ops in 10.02s / 19504 9.99s -1.016388 Doing 256 bits ecdh ops for 10s: 85051 256-bits ECDH ops in 10.02s / 86186 9.99s -1.134190 Doing 384 bits ecdh ops for 10s: 5071 384-bits ECDH ops in 10.02s / 5740 10.00s -1.065695 Doing 521 bits ecdh ops for 10s: 1965 521-bits ECDH ops in 10.02s / 2092 10.01s -1.402414 Doing 163 bits ecdh ops for 10s: 19195 163-bits ECDH ops in 10.02s / 26785 9.97s -1.296424 Doing 233 bits ecdh ops for 10s: 13892 233-bits ECDH ops in 10.02s / 17956 9.99s -1.259817 Doing 283 bits ecdh ops for 10s: 6813 283-bits ECDH ops in 10.02s / 8566 10.00s -1.217254 Doing 409 bits ecdh ops for 10s: 3324 409-bits ECDH ops in 10.02s / 4030 9.98s -1.256887 Doing 571 bits ecdh ops for 10s: 1515 571-bits ECDH ops in 9.98s / 1908 10.00s -1.408510 Doing 163 bits ecdh ops for 10s: 18076 163-bits ECDH ops in 10.02s / 25384 9.99s -1.299592 Doing 233 bits ecdh ops for 10s: 13118 233-bits ECDH ops in 10.02s / 16997 9.99s -1.249485 Doing 283 bits ecdh ops for 10s: 6305 283-bits ECDH ops in 10.00s / 7878 10.00s -1.207385 Doing 409 bits ecdh ops for 10s: 3015 409-bits ECDH ops in 10.02s / 3633 10.00s -1.254858 Doing 571 bits ecdh ops for 10s: 1362 571-bits ECDH ops in 10.02s / 1704 9.99s -1.261710 Doing 256 bits ecdh ops for 10s: 13862 256-bits ECDH ops in 10.02s / 17420 9.98s -1.260662 Doing 256 bits ecdh ops for 10s: 13866 256-bits ECDH ops in 10.02s / 17428 9.99s -1.132747 Doing 384 bits ecdh ops for 10s: 5081 384-bits ECDH ops in 10.02s / 5744 10.00s -1.134384 Doing 384 bits ecdh ops for 10s: 5115 384-bits ECDH ops in 10.02s / 5785 9.99s -1.090045 Doing 512 bits ecdh ops for 10s: 2608 512-bits ECDH ops in 10.02s / 2840 10.01s -1.090210 Doing 512 bits ecdh ops for 10s: 2624 512-bits ECDH ops in 10.02s / 2855 10.00s -1.862459 Doing 253 bits ecdh ops for 10s: 40640 253-bits ECDH ops in 9.98s / 75842 10.00s -1.018349 Doing 448 bits ecdh ops for 10s: 20715 448-bits ECDH ops in 10.02s / 21053 10.00s -2.464268 Doing 253 bits sign Ed25519 ops for 10s: 114599 253 bits Ed25519 sign ops in 10.02s / 281839 10.00s -2.480581 Doing 253 bits verify Ed25519 ops for 10s: 35391 253 bits Ed25519 verify ops in 10.02s / 87615 10.00s -1.225898 Doing 456 bits sign Ed448 ops for 10s: 21347 456 bits Ed448 sign ops in 10.02s / 26117 10.00s -1.006482 Doing 456 bits verify Ed448 ops for 10s: 18778 456 bits Ed448 verify ops in 10.02s / 18862 10.00s -1.266629 Doing 256 bits sign CurveSM2 ops for 10s: 13048 256 bits CurveSM2 sign ops in 10.02s / 16461 9.98s -1.288768 Doing 256 bits verify CurveSM2 ops for 10s: 15126 256 bits CurveSM2 verify ops in 10.02s / 19455 10.00s -1.005608 Doing 2048 bits ffdh ops for 10s: 7498 2048-bits FFDH ops in 10.02s / 7525 10.00s -1.005645 Doing 3072 bits ffdh ops for 10s: 3299 3072-bits FFDH ops in 10.02s / 3311 10.00s -1.004073 Doing 4096 bits ffdh ops for 10s: 1628 4096-bits FFDH ops in 10.02s / 1633 10.01s -1.002965 Doing 6144 bits ffdh ops for 10s: 756 6144-bits FFDH ops in 10.00s / 759 10.01s -1.003000 Doing 8192 bits ffdh ops for 10s: 376 8192-bits FFDH ops in 10.03s / 376 10.00s -1.133663 Doing rsa512 keygen ops for 10s: 1679 rsa512 KEM keygen ops in 10.00s / 1892 9.94s -1.447648 Doing rsa512 encaps ops for 10s: 961970 rsa512 KEM encaps ops in 10.02s / 1352289 9.73s -1.100811 Doing rsa512 decaps ops for 10s: 131067 rsa512 KEM decaps ops in 10.02s / 143992 10.00s -1.023077 Doing rsa1024 keygen ops for 10s: 260 rsa1024 KEM keygen ops in 10.02s / 266 10.02s -1.140419 Doing rsa1024 encaps ops for 10s: 391387 rsa1024 KEM encaps ops in 10.02s / 441445 9.91s -1.030468 Doing rsa1024 decaps ops for 10s: 24066 rsa1024 KEM decaps ops in 10.02s / 24725 9.99s -0.965795 Doing rsa2048 keygen ops for 10s: 52 rsa2048 KEM keygen ops in 10.28s / 49 10.03s -1.068979 Doing rsa2048 encaps ops for 10s: 116950 rsa2048 KEM encaps ops in 10.02s / 124518 9.98s -1.010500 Doing rsa2048 decaps ops for 10s: 3471 rsa2048 KEM decaps ops in 9.97s / 3518 10.00s -0.966144 Doing rsa3072 keygen ops for 10s: 14 rsa3072 KEM keygen ops in 11.70s / 12 10.38s -1.044618 Doing rsa3072 encaps ops for 10s: 64858 rsa3072 KEM encaps ops in 10.02s / 67549 9.99s -1.008913 Doing rsa3072 decaps ops for 10s: 1122 rsa3072 KEM decaps ops in 10.00s / 1132 10.00s -1.640822 Doing rsa4096 keygen ops for 10s: 3 rsa4096 KEM keygen ops in 12.38s / 4 10.06s -1.031630 Doing rsa4096 encaps ops for 10s: 38646 rsa4096 KEM encaps ops in 10.02s / 39749 9.99s -1.006085 Doing rsa4096 decaps ops for 10s: 493 rsa4096 KEM decaps ops in 10.02s / 496 10.02s -0.162221 Doing rsa7680 keygen ops for 10s: 2 rsa7680 KEM keygen ops in 19.22s / 1 59.24s -1.012461 Doing rsa7680 encaps ops for 10s: 11973 rsa7680 KEM encaps ops in 10.02s / 12098 10.00s -1.004985 Doing rsa7680 decaps ops for 10s: 97 rsa7680 KEM decaps ops in 10.08s / 97 10.03s -0.693733 Doing rsa15360 keygen ops for 10s: 1 rsa15360 KEM keygen ops in 266.56s / 1 384.24s -1.007451 Doing rsa15360 encaps ops for 10s: 3125 rsa15360 KEM encaps ops in 10.02s / 3142 10.00s -1.002830 Doing rsa15360 decaps ops for 10s: 14 rsa15360 KEM decaps ops in 10.63s / 14 10.60s -1.475379 Doing ECP-256 keygen ops for 10s: 300057 ECP-256 KEM keygen ops in 10.02s / 437396 9.90s -1.059489 Doing ECP-256 encaps ops for 10s: 24558 ECP-256 KEM encaps ops in 10.02s / 25967 10.00s -1.048237 Doing ECP-256 decaps ops for 10s: 26872 ECP-256 KEM decaps ops in 10.02s / 28112 10.00s -1.139053 Doing ECP-384 keygen ops for 10s: 5030 ECP-384 KEM keygen ops in 10.02s / 5718 10.00s -1.149820 Doing ECP-384 encaps ops for 10s: 1593 ECP-384 KEM encaps ops in 10.00s / 1828 9.98s -1.156220 Doing ECP-384 decaps ops for 10s: 2326 ECP-384 KEM decaps ops in 10.02s / 2684 10.00s -1.069620 Doing ECP-521 keygen ops for 10s: 1956 ECP-521 KEM keygen ops in 10.02s / 2088 10.00s -1.079694 Doing ECP-521 encaps ops for 10s: 636 ECP-521 KEM encaps ops in 10.02s / 686 10.01s -1.080701 Doing ECP-521 decaps ops for 10s: 941 ECP-521 KEM decaps ops in 9.97s / 1020 10.00s -2.521667 Doing X25519 keygen ops for 10s: 107927 X25519 KEM keygen ops in 9.97s / 271337 9.94s -2.017939 Doing X25519 encaps ops for 10s: 28533 X25519 KEM encaps ops in 10.02s / 57348 9.98s -1.885194 Doing X25519 decaps ops for 10s: 39184 X25519 KEM decaps ops in 10.02s / 73722 10.00s -1.227315 Doing X448 keygen ops for 10s: 21539 X448 KEM keygen ops in 10.02s / 26356 9.99s -1.132494 Doing X448 encaps ops for 10s: 10366 X448 KEM encaps ops in 10.02s / 11716 10.00s -1.030939 Doing X448 decaps ops for 10s: 20169 X448 KEM decaps ops in 10.00s / 20793 10.00s -1.138485 Doing rsa512 keygen ops for 10s: 1674 rsa512 signature keygen ops in 10.02s / 1883 9.90s -1.094319 Doing rsa512 signs ops for 10s: 132143 rsa512 signature sign ops in 10.02s / 144318 10.00s -1.204879 Doing rsa512 verify ops for 10s: 1400218 rsa512 signature verify ops in 10.02s / 1682042 9.99s -1.019231 Doing rsa1024 keygen ops for 10s: 260 rsa1024 signature keygen ops in 10.03s / 265 10.03s -1.029811 Doing rsa1024 signs ops for 10s: 24095 rsa1024 signature sign ops in 10.02s / 24739 9.99s -1.061203 Doing rsa1024 verify ops for 10s: 455279 rsa1024 signature verify ops in 10.02s / 482179 10.00s -1.061050 Doing rsa2048 keygen ops for 10s: 50 rsa2048 signature keygen ops in 10.11s / 53 10.10s -1.016442 Doing rsa2048 signs ops for 10s: 3469 rsa2048 signature sign ops in 10.02s / 3519 10.00s -1.019971 Doing rsa2048 verify ops for 10s: 125930 rsa2048 signature verify ops in 10.00s / 128445 10.00s -1.250000 Doing rsa3072 keygen ops for 10s: 12 rsa3072 signature keygen ops in 10.16s / 15 10.16s -1.012845 Doing rsa3072 signs ops for 10s: 1121 rsa3072 signature sign ops in 10.02s / 1132 9.99s -1.013457 Doing rsa3072 verify ops for 10s: 68044 rsa3072 signature verify ops in 10.02s / 68822 10.00s -0.997295 Doing rsa4096 keygen ops for 10s: 4 rsa4096 signature keygen ops in 11.06s / 4 11.09s -1.008130 Doing rsa4096 signs ops for 10s: 492 rsa4096 signature sign ops in 10.02s / 496 10.02s -1.008424 Doing rsa4096 verify ops for 10s: 40089 rsa4096 signature verify ops in 10.02s / 40346 10.00s -0.878105 Doing rsa7680 keygen ops for 10s: 1 rsa7680 signature keygen ops in 18.91s / 2 43.07s -1.004985 Doing rsa7680 signs ops for 10s: 97 rsa7680 signature sign ops in 10.08s / 97 10.03s -1.004805 Doing rsa7680 verify ops for 10s: 12145 rsa7680 signature verify ops in 10.02s / 12179 10.00s -5.533539 Doing rsa15360 keygen ops for 10s: 1 rsa15360 signature keygen ops in 125.39s / 1 22.66s -1.002830 Doing rsa15360 signs ops for 10s: 14 rsa15360 signature sign ops in 10.63s / 14 10.60s -1.003911 Doing rsa15360 verify ops for 10s: 3146 rsa15360 signature verify ops in 10.02s / 3152 10.00s -1.053721 Doing dsa1024 keygen ops for 10s: 14622 dsa1024 signature keygen ops in 10.02s / 15346 9.98s -1.073769 Doing dsa1024 signs ops for 10s: 22869 dsa1024 signature sign ops in 10.02s / 24458 9.98s -1.076262 Doing dsa1024 verify ops for 10s: 30993 dsa1024 signature verify ops in 10.02s / 33290 10.00s -1.011429 Doing dsa2048 keygen ops for 10s: 4038 dsa2048 signature keygen ops in 10.02s / 4076 10.00s -1.024685 Doing dsa2048 signs ops for 10s: 7023 dsa2048 signature sign ops in 10.02s / 7182 10.00s -1.014147 Doing dsa2048 verify ops for 10s: 8837 dsa2048 signature verify ops in 9.98s / 8971 9.99s -1.699427 Doing sm3 ops for 3s on 16 size blocks: 4174391 sm3 ops in 3.02s / 7047094 3.00s -1.421275 Doing sm3 ops for 3s on 64 size blocks: 3257484 sm3 ops in 3.02s / 4599120 3.00s -1.230983 Doing sm3 ops for 3s on 256 size blocks: 1836499 sm3 ops in 3.02s / 2245728 3.00s -1.110585 Doing sm3 ops for 3s on 1024 size blocks: 668089 sm3 ops in 3.02s / 737056 3.00s -1.060236 Doing sm3 ops for 3s on 8192 size blocks: 96157 sm3 ops in 3.02s / 101274 3.00s -1.055154 Doing sm3 ops for 3s on 16384 size blocks: 48686 sm3 ops in 3.02s / 51031 3.00s -0.555717 Doing SM4-CBC ops for 3s on 16 size blocks: 17996825 SM4-CBC ops in 3.02s / 9901797 2.99s -0.527789 Doing SM4-CBC ops for 3s on 64 size blocks: 4879450 SM4-CBC ops in 3.02s / 2558265 3.00s -0.519877 Doing SM4-CBC ops for 3s on 256 size blocks: 1247297 SM4-CBC ops in 3.02s / 644147 3.00s -0.515752 Doing SM4-CBC ops for 3s on 1024 size blocks: 314803 SM4-CBC ops in 3.02s / 161285 3.00s -0.514463 Doing SM4-CBC ops for 3s on 8192 size blocks: 39481 SM4-CBC ops in 3.02s / 20177 3.00s -0.514397 Doing SM4-CBC ops for 3s on 16384 size blocks: 19744 SM4-CBC ops in 3.02s / 10089 3.00s -4.461054 Doing AES-128-GCM ops for 3s on 16 size blocks: 19273506 AES-128-GCM ops in 3.02s / 85126038 2.99s -10.539830 Doing AES-128-GCM ops for 3s on 64 size blocks: 5675349 AES-128-GCM ops in 3.02s / 59421073 3.00s -16.604217 Doing AES-128-GCM ops for 3s on 256 size blocks: 1457292 AES-128-GCM ops in 3.02s / 24036946 3.00s -21.153846 Doing AES-128-GCM ops for 3s on 1024 size blocks: 369778 AES-128-GCM ops in 3.02s / 7770424 3.00s -23.463292 Doing AES-128-GCM ops for 3s on 8192 size blocks: 46433 AES-128-GCM ops in 3.02s / 1082256 3.00s -23.714465 Doing AES-128-GCM ops for 3s on 16384 size blocks: 23173 AES-128-GCM ops in 3.02s / 545896 3.00s -4.456006 Doing AES-192-GCM ops for 3s on 16 size blocks: 18092439 AES-192-GCM ops in 3.02s / 79819157 2.99s -10.521798 Doing AES-192-GCM ops for 3s on 64 size blocks: 5261458 AES-192-GCM ops in 3.02s / 54993378 3.00s -16.403785 Doing AES-192-GCM ops for 3s on 256 size blocks: 1354043 AES-192-GCM ops in 3.02s / 22064335 3.00s -20.885440 Doing AES-192-GCM ops for 3s on 1024 size blocks: 342348 AES-192-GCM ops in 3.02s / 7102737 3.00s -23.160048 Doing AES-192-GCM ops for 3s on 8192 size blocks: 43027 AES-192-GCM ops in 3.02s / 989908 3.00s -23.343428 Doing AES-192-GCM ops for 3s on 16384 size blocks: 21516 AES-192-GCM ops in 3.02s / 498931 3.00s -4.607602 Doing AES-256-GCM ops for 3s on 16 size blocks: 17014270 AES-256-GCM ops in 3.02s / 77875817 3.00s -10.606193 Doing AES-256-GCM ops for 3s on 64 size blocks: 4921610 AES-256-GCM ops in 3.02s / 51853851 3.00s -16.259064 Doing AES-256-GCM ops for 3s on 256 size blocks: 1261579 AES-256-GCM ops in 3.02s / 20376252 3.00s -20.189661 Doing AES-256-GCM ops for 3s on 1024 size blocks: 319399 AES-256-GCM ops in 3.02s / 6405852 3.00s -22.031109 Doing AES-256-GCM ops for 3s on 8192 size blocks: 40055 AES-256-GCM ops in 3.02s / 876612 3.00s -22.186437 Doing AES-256-GCM ops for 3s on 16384 size blocks: 20022 AES-256-GCM ops in 3.02s / 441275 3.00s From 35dd020b82518a423cf4eede3fd0c3b37b539cdd Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 13 Sep 2023 16:49:21 +0200 Subject: [PATCH 47/50] * refactor and increase threshold for benchmark regression to 10% --- .github/workflows/scripts/benchmark.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scripts/benchmark.sh b/.github/workflows/scripts/benchmark.sh index 7c5bb26b05bc9..3e247598fa584 100755 --- a/.github/workflows/scripts/benchmark.sh +++ b/.github/workflows/scripts/benchmark.sh @@ -1,8 +1,5 @@ #!/bin/bash -command=$1 -shift - execute_benchmark() { LD_LIBRARY_PATH=$(pwd) apps/openssl speed @@ -68,10 +65,13 @@ verify_benchmark_regression() { print_Pn "25 50 75 95 99 100" $latest_benchmark_snapshot > Pn_latest print_Pn "25 50 75 95 99 100" b1 > Pn_current echo Pn latest_snapshot current percentage_change - paste Pn_latest Pn_current | awk 'begin{max = 0} {change = $4 * 100 / $2 - 100; if (max < change) max = change; printf "%s %s %s %f\n", $1, $2, $4, change} END {if (max > 0.6) print "Potential benchmark regression has been detected"}' > change + paste Pn_latest Pn_current | awk 'begin{max = 0} {change = $4 * 100 / $2 - 100; if (max < change) max = change; printf "%s %s %s %f\n", $1, $2, $4, change} END {if (max > 10) print "Potential benchmark regression has been detected"}' > change cat change cat change | grep -q "Potential benchmark regression has been detected" && exit 1 || echo "Benchmark regression has not been detected" } +command=$1 +shift + $command "$@" From f984a16e48e61f81ca9ae8094917fc4c4b6553cc Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Thu, 14 Sep 2023 00:37:50 +0200 Subject: [PATCH 48/50] * disable scripts checkout from dev for testing --- .github/workflows/ci-arm64.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index eb26bf08da3c3..6db9aab634da5 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -192,7 +192,6 @@ jobs: run: | set -x git fetch origin ${{ github.event.repository.default_branch }} - git checkout origin/${{ github.event.repository.default_branch }} -- .github/workflows/scripts . .github/workflows/scripts/benchmark.sh verify_benchmark_regression create-benchmark-snapshot: From 79b924f902f322f9ac06090cca1d8b3e9da0be87 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 20 Sep 2023 00:23:59 +0200 Subject: [PATCH 49/50] * refactoring based on review --- .github/workflows/ci-arm64.yml | 36 ++++---------------------- .github/workflows/scripts/benchmark.sh | 34 ++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ci-arm64.yml b/.github/workflows/ci-arm64.yml index 6db9aab634da5..f661bfc09fdf0 100644 --- a/.github/workflows/ci-arm64.yml +++ b/.github/workflows/ci-arm64.yml @@ -217,34 +217,8 @@ jobs: - name: Create PR for a benchmark snapshot run: | set -x - git config --global user.name "$GITHUB_ACTOR" - git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" - git fetch origin ${{ github.event.repository.default_branch }} - git checkout origin/${{ github.event.repository.default_branch }} -- .github/workflows/scripts - branch=${{ inputs.branch }} - [[ -z $branch ]] && branch=$(git symbolic-ref --short HEAD) - [ ! -d .github/benchmark_snapshot ] && mkdir -p .github/benchmark_snapshot - benchmark_snapshot_result=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S_gcc_vs_clang.txt") - [ ! -d .assets/benchmark ] && mkdir -p .assets/benchmark - benchmark_image=$(date +".assets/benchmark/benchmark_snapshot_%Y-%m-%d_%H_%M_%S_gcc_vs_clangcl.png") - . .github/workflows/scripts/benchmark.sh benchmark_snapshot $benchmark_snapshot_result $benchmark_image - git restore .github/workflows/scripts - git fetch origin assets - git checkout assets - git add $benchmark_image - git commit -am "* add a benchmark image" - git push - git checkout ${{ github.event.repository.default_branch }} -- - git checkout -b benchmark_snapshot - git add .github/benchmark_snapshot - git commit -am "* add a benchmark snapshot" - git push --force origin benchmark_snapshot - PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ - -d '{ - "title": "Add benchmark snapshot", - "body": "![image](https://raw.githubusercontent.com/Windows-on-ARM-Experiments/openssl/assets/'$benchmark_asset')", - "head": "benchmark_snapshot", - "base": "${{ github.event.repository.default_branch }}" - }' \ - https://api.github.com/repos/$GITHUB_REPOSITORY/pulls) - echo "$PR_RESPONSE" + . .github/workflows/scripts/benchmark.sh create_benchmark_snapshot_pr + env: + BRANCH: ${{ inputs.branch }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} diff --git a/.github/workflows/scripts/benchmark.sh b/.github/workflows/scripts/benchmark.sh index 3e247598fa584..b156690d4de89 100755 --- a/.github/workflows/scripts/benchmark.sh +++ b/.github/workflows/scripts/benchmark.sh @@ -70,6 +70,40 @@ verify_benchmark_regression() { cat change | grep -q "Potential benchmark regression has been detected" && exit 1 || echo "Benchmark regression has not been detected" } +create_benchmark_snapshot_pr() { + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + git fetch origin $DEFAULT_BRANCH + git checkout origin/$DEFAULT_BRANCH -- .github/workflows/scripts + branch=$BRANCH + [[ -z $branch ]] && branch=$(git symbolic-ref --short HEAD) + [ ! -d .github/benchmark_snapshot ] && mkdir -p .github/benchmark_snapshot + benchmark_snapshot_result=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S_gcc_vs_clang.txt") + [ ! -d .assets/benchmark ] && mkdir -p .assets/benchmark + benchmark_image=$(date +".assets/benchmark/benchmark_snapshot_%Y-%m-%d_%H_%M_%S_gcc_vs_clangcl.png") + . .github/workflows/scripts/benchmark.sh benchmark_snapshot $benchmark_snapshot_result $benchmark_image + git restore .github/workflows/scripts + git fetch origin assets + git checkout assets + git add $benchmark_image + git commit -am "* add a benchmark image" + git push + git checkout $DEFAULT_BRANCH -- + git checkout -b benchmark_snapshot + git add .github/benchmark_snapshot + git commit -am "* add a benchmark snapshot" + git push --force origin benchmark_snapshot + PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer $GITHUB_TOKEN" \ + -d '{ + "title": "Add benchmark snapshot", + "body": "![image](https://raw.githubusercontent.com/Windows-on-ARM-Experiments/openssl/assets/'$benchmark_asset')", + "head": "benchmark_snapshot", + "base": "$DEFAULT_BRANCH" + }' \ + https://api.github.com/repos/$GITHUB_REPOSITORY/pulls) + echo "$PR_RESPONSE" +} + command=$1 shift From 0aa10c0c9ad7769f312319bf5df81fdd25a21c85 Mon Sep 17 00:00:00 2001 From: Evgeny Karpov Date: Wed, 20 Sep 2023 00:32:18 +0200 Subject: [PATCH 50/50] * add more comments for creating benchmark snapshot --- .github/workflows/scripts/benchmark.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/scripts/benchmark.sh b/.github/workflows/scripts/benchmark.sh index b156690d4de89..a6540bb093604 100755 --- a/.github/workflows/scripts/benchmark.sh +++ b/.github/workflows/scripts/benchmark.sh @@ -73,26 +73,33 @@ verify_benchmark_regression() { create_benchmark_snapshot_pr() { git config user.name "$GITHUB_ACTOR" git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + # fetch workflow scripts from default branch git fetch origin $DEFAULT_BRANCH git checkout origin/$DEFAULT_BRANCH -- .github/workflows/scripts branch=$BRANCH + # define a file for benchmark snapshot [[ -z $branch ]] && branch=$(git symbolic-ref --short HEAD) [ ! -d .github/benchmark_snapshot ] && mkdir -p .github/benchmark_snapshot benchmark_snapshot_result=$(date +".github/benchmark_snapshot/${branch}_%Y-%m-%d_%H_%M_%S_gcc_vs_clang.txt") + # define a file for a benchmark image in assests branch which will be used in PR description [ ! -d .assets/benchmark ] && mkdir -p .assets/benchmark benchmark_image=$(date +".assets/benchmark/benchmark_snapshot_%Y-%m-%d_%H_%M_%S_gcc_vs_clangcl.png") + # create benchmark snapshot and benchmark image for the PR . .github/workflows/scripts/benchmark.sh benchmark_snapshot $benchmark_snapshot_result $benchmark_image + # add benchmark image to assets branch git restore .github/workflows/scripts git fetch origin assets git checkout assets git add $benchmark_image git commit -am "* add a benchmark image" git push + # add benchmark snapshot to PR branch git checkout $DEFAULT_BRANCH -- git checkout -b benchmark_snapshot git add .github/benchmark_snapshot git commit -am "* add a benchmark snapshot" git push --force origin benchmark_snapshot + # create a PR for benchmark snapshot PR_RESPONSE=$(curl -X POST -H "Authorization: Bearer $GITHUB_TOKEN" \ -d '{ "title": "Add benchmark snapshot",