Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Benchmark Milk-V Mars RISC-V SBC #35

Closed
geerlingguy opened this issue Jul 2, 2024 · 4 comments
Closed

Benchmark Milk-V Mars RISC-V SBC #35

geerlingguy opened this issue Jul 2, 2024 · 4 comments

Comments

@geerlingguy
Copy link
Owner

See: geerlingguy/sbc-reviews#46

It will likely be similar in performance to the Mars CM (#20)

@geerlingguy
Copy link
Owner Author

Attempting to install Ansible to run the benchmark from the board itself:

  1. sudo apt install python3-pip
  2. pip3 install ansible

For the Mars CM, it had trouble compiling the Python cryptography library. And I found an issue for riscv64 build - OOM kill, high memory usage, but I seem to be hitting an issue where it tries to find a Rust compiler and bails:

      copying src/cryptography/hazmat/bindings/_rust/openssl/x448.pyi -> build/lib.linux-riscv64-cpython-310/cryptography/hazmat/bindings/_rust/openssl
      running build_ext
      running build_rust
      error: can't find Rust compiler
      
      If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.
      
      To update pip, run:
      
          pip install --upgrade pip
      
      and then retry package installation.
      
      If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.
      
      This package requires Rust >=1.63.0.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for cryptography
  Building wheel for MarkupSafe (setup.py) ... done
  Created wheel for MarkupSafe: filename=MarkupSafe-2.1.5-cp310-cp310-linux_riscv64.whl size=23821 sha256=da37d67f972b1023bca608d3c5a2038e1f99061240ccd1a57a2d9a30baeddf3d
  Stored in directory: /home/user/.cache/pip/wheels/2a/04/fa/f54a9011eaf18a437110e8171478b3e963dc249ed60ce77f17
Successfully built PyYAML MarkupSafe
Failed to build cryptography
ERROR: Could not build wheels for cryptography, which is required to install pyproject.toml-based projects

@geerlingguy
Copy link
Owner Author

I tried installing musl-dev with gcc musl-dev python3-dev libffi-dev as suggested here, then I tried installing cryptography standalone, but that's not working either.

Going to just run Ansible from my Mac like I did with Mars CM.

@geerlingguy
Copy link
Owner Author

Running from my Mac, it gets stuck during the apt cache update, so I've disabled that for now...

TASK [Update apt cache.] ***********************************************************************************************
fatal: [10.0.2.211]: FAILED! => changed=false 
  msg: 'Failed to update apt cache: unknown reason'

@geerlingguy
Copy link
Owner Author

Final result: 2.058 Gflops at 4.7W, for 0.438 Gflops/W

================================================================================
HPLinpack 2.3  --  High-Performance Linpack benchmark  --   December 2, 2018
Written by A. Petitet and R. Clint Whaley,  Innovative Computing Laboratory, UTK
Modified by Piotr Luszczek, Innovative Computing Laboratory, UTK
Modified by Julien Langou, University of Colorado Denver
================================================================================

An explanation of the input/output parameters follows:
T/V    : Wall time / encoded variant.
N      : The order of the coefficient matrix A.
NB     : The partitioning blocking factor.
P      : The number of process rows.
Q      : The number of process columns.
Time   : Time in seconds to solve the linear system.
Gflops : Rate of execution for solving the linear system.

The following parameter values will be used:

N      :   23314
NB     :     256
PMAP   : Row-major process mapping
P      :       1
Q      :       4
PFACT  :   Right
NBMIN  :       4
NDIV   :       2
RFACT  :   Crout
BCAST  :  1ringM
DEPTH  :       1
SWAP   : Mix (threshold = 64)
L1     : transposed form
U      : transposed form
EQUIL  : yes
ALIGN  : 8 double precision words

--------------------------------------------------------------------------------

- The matrix A is randomly generated for each test.
- The following scaled residual check will be computed:
      ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N )
- The relative machine precision (eps) is taken to be               1.110223e-16
- Computational tests pass if scaled residuals are less than                16.0

================================================================================
T/V                N    NB     P     Q               Time                 Gflops
--------------------------------------------------------------------------------
WR11C2R4       23314   256     1     4            4105.15             2.0581e+00
HPL_pdgesv() start time Tue Jul  2 03:24:42 2024

HPL_pdgesv() end time   Tue Jul  2 04:33:07 2024

--------------------------------------------------------------------------------
||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=   4.06326368e-03 ...... PASSED
================================================================================

Finished      1 tests with the following results:
              1 tests completed and passed residual checks,
              0 tests completed and failed residual checks,
              0 tests skipped because of illegal input values.
--------------------------------------------------------------------------------

End of Tests.
================================================================================

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant