Description - phoronix/c-ray

This is a test of C-Ray, a simple raytracer designed to test the floating-point CPU performance. This test is multi-threaded (16 threads per core), will shoot 8 rays per pixel for anti-aliasing, and will generate a 1600 x 1200 image.

Metrics (Intel) - phoronix/c-ray
c-ray - pid 12476
	On_CPU   0.988
	On_Core  7.901
	IPC      1.438
	Retire   0.740	(74.0%)
	FrontEnd 0.104	(10.4%)
	Spec     0.008	(0.8%)
	Backend  0.148	(14.8%)
	Elapsed  26.61
	Procs    130
	Minflt   2514
	Majflt   0
	Utime    210.25  	(100.0%)
	Stime    0.00    	(0.0%)
	Start    442452.65
	Finish   442479.26

This benchmark runs for slightly less than 30 seconds. During that time it is scheduled on all cores of the CPU almost 100% of the time.

Topdown metrics show it isn’t slowed much by issues in front end, backend or bad speculation.

Metrics (AMD) - phoronix/c-ray
sh - pid 5058
	On_CPU   0.977
	On_Core  15.625
	IPC      1.844
	FrontCyc 0.001	(0.1%)
	BackCyc  0.079	(7.9%)
	Elapsed  11.36
	Procs    258
	Minflt   2925
	Majflt   0
	Utime    177.50  	(100.0%)
	Stime    0.00    	(0.0%)
	Start    40959.30
	Finish   40970.66

Process Tree - phoronix/c-ray
Process Tree
A total of 130 processes are run as part of the application, it is otherwise symmetric across these processes.

About this graph
CPU utilization shows almost even usage across all cores.


The IPC is a little over 1.4

About this graph
The plot shows across three runs of the benchmark.

Overall, this benchmark is spending most all time scheduled on the cores and most of that time retiring instructions. No major bottlenecks stick out for further investigation, but instead this is a useful cross reference point with other workloads or other platforms.

Next step (done): Investigate why wspy runs on Ryzen occasionally miss exit events e.g. ~1 of the 256 threads launched. Investigated this and appears that the events might still occur but information such as the child pid might not always be available in a ptrace(PTRACE_GETEVENTMSG) call. I’ve made the ptrace2 engine more robust for this possibility.