Welcome to Card Raytracer Benchmark.

November 19, 2022 ยท View on GitHub

card-raytrace

Our goals:

  1. Make the port of 'Card-Raytracer' into Java, Python, CSharp, Digital Mars D, GoLang, JavaScript

  2. Estimate performance index.

  3. Make conclusions

Short insructions for Users:

  1. Download & Install Java, Python, CSharp, Digital Mars D, GoLang, JavaScript environment.

  2. Run 'run-benchmark'

  3. Read report.

Developers

  1. Mayton

  2. Ruslan (kealon)

  3. MasterZiv (masterziv)

  4. dr-sm (dr-sm)

  5. Dmitriy (dmitriyt)

  6. Igor Yudincev (wolfnstein)

  7. Siemargl

  8. DRSM

  9. vadimalekseev

REPORTS

Hardware configuration details

ParameterValue
Architecture:x86_64
CPU op-mode(s):32-bit, 64-bit
Byte Order:Little Endian
CPU(s):12
On-line CPU(s) list:0-11
Thread(s) per core:2
Core(s) per socket:6
Socket(s):1
NUMA node(s):1
Vendor ID:AuthenticAMD
CPU family:23
Model:1
Model name:AMD Ryzen 5 1600 Six-Core Processor
Stepping:1
CPU MHz:1374.622
CPU max MHz:3200.0000
CPU min MHz:1550.0000
BogoMIPS:6387.20
Virtualization:AMD-V
L1d cache:32K
L1i cache:64K
L2 cache:512K
L3 cache:8192K
NUMA node0 CPU(s):0-11

Rust (rustc 1.39.0, cargo 1.39.0, Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 15-Feb-2020

AuthorLanguage/TypeOptionsElapsed time
-Rust--release8.7 s

C (gcc version 7.4.0/Clang, Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 15-Feb-2020

AuthorLanguage/TypeOptionsElapsed time
SiemarglC/Raytracer_handofdos2-O3 -march=native -m64 -msse4.2 -ffast-math9.8 s
SiemarglC/Raytracer_handofdosavx2-O3 -march=native -m64 -msse4.2 -ffast-math -DAVX_VERSION10.9 s
SiemarglC/Raytracer_handofdosAVX3-O3 -march=native -m64 -msse4.2 -ffast-math -DAVX_VERSION32.7 s
SiemarglClang/Raytracer_handofdos_r2.clang.exe-lm -O3 -march=native -m64 -msse4.2 -ffast-math -DAVX_VERSION10.8
SiemarglClang/Raytracer_handofdos_r3experimental.clang.exe-lm -O3 -march=native -m64 -msse4.2 -ffast-math -DAVX_VERSION10.8

C++ (gcc version 7.4.0, clang version 6.0.0-1ubuntu2, Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 16-Feb 2020

AuthorLanguage/TypeOptionsElapsed time
HeckbertC++/Canonical-O3 -march=native10.37 s
-C++/Opt-O3 -march=native10.03 s
RWolfC++/RWolf-O3 -march=native9.06 s
HeckbertClang++/Canonical-O3 -march=native10.67 s
-Clang++/Opt-O3 -march=native12.97 s
RWolfClang++/RWolf-O3 -march=native13.32 s

Java-11 (OpenJDK 11.0.4 64-Bit, Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 15-Feb-2020

AuthorLanguage/TypeMultithread optionsElapsed time
MaytonJava12s
MaytonJava2 threads?
MaytonJava3 threads?
MaytonJava4 threads?
MaytonJava5 threads?

GoLang (Linux 5.15.0-52-generic 20.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux)

AuthorLanguage/TypeOptionsElapsed timeDate
vadimalekseevgo1.13.8 linux/amd6418.5 s19-Nov-2022
DRSMgo1.10.4 linux/amd6423 s

Digital Mars D : gdc (Ubuntu 8-20180414-1ubuntu2) 8.0.1 20180414 (experimental) (no up-to-date!)

Language/TypeOptionsElapsed time
Dlang-O2 -msse4 -ffast-math21.14 s

Free Pascal (Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 29-Feb-2020

AuthorLanguage/TypeOptionsElapsed time
-FPC 3.0.4+dfsg-18ubuntu2 for x86_64-CX -O3 -XX -vewnhi -Fi. -Fu. -FU.32 s

Node JS (non up-to-date!)

AuthorLanguage/TypeOptionsElapsed time
DRSMNodeJS v8.10.01m 30 s

Python/PyPy (non up-to-date!)

Language/TypeOptionsElapsed time
Language/TypeOptionsMultithread optionsElapsed time
C#/Single-Thread-o+75.31
C#/Multi-Thread-o+2 threads37.67
C#/Multi-Thread-o+3 threads41.34
C#/Multi-Thread-o+4 threads40.34
C#/Multi-Thread-o+5 threads41.76

PHP (non up-to-date!)

AuthrorLanguage/TypeOptionsElapsed time
DRSM

Ruby (non up-to-date!)

Language/TypeOptionsElapsed time

Common Lisp (non up-to-date!)

Language/TypeOptionsElapsed time

FAQ

F: How to display .ppm file?

A: Try to use: - http://www.irfanview.com/
- http://www.libreoffice.org/

Usefull links:

  1. Discussion:

    http://www.sql.ru/forum/1173809-1/tyapnichnyy-benchmark-cpu-part-1

  2. Other like projects

    https://github.com/mzucker/miniray https://github.com/dcousens/RayTracer