The usual benchmarking has been done in the usual threads but it's been too long since I've properly fondled some hardware so I plan to bench this to hell and back. The hardware is an Asus PN50 SFF PC paired with 2x16GB SO-DIMM DDR4 3200 CL22 DR and a 1TB NVMe TLC M.2 SSD. The bios is extremely basic with no overclocking options or much of anything, so the RAM is what it is AFAIK and the CPU/GPU can only be fiddled with using whatever tools exist for Linux.
ryzenadj (
https://github.com/FlyGoat/RyzenAdj ) seems to work well at setting power targets for the CPU, so that's how I've tested underclocking with M60721417:
Code:
CPU Clock Power Power At
(MHz) Target (W) Wall (W) ms/it it/s j/it Command
2825 20 33.5 4.87 205.3 0.163 "ryzenadj --stapm-limit=20000 --fast-limit=20000 --slow-limit=20000"
2400 15 27 4.93 203.0 0.133 "ryzenadj --stapm-limit=15000 --fast-limit=15000 --slow-limit=15000"
2025 13 24 5.01 199.6 0.120 "ryzenadj --stapm-limit=13000 --fast-limit=13000 --slow-limit=13000"
1730 12 23 5.15 194.1 0.118 "ryzenadj --stapm-limit=12000 --fast-limit=12000 --slow-limit=12000"
1450 11.5 21.5 5.52 181.1 0.118 "ryzenadj --stapm-limit=11500 --fast-limit=11500 --slow-limit=11500"
1400 11 21 5.55 180.1 0.116 "ryzenadj --stapm-limit=11000 --fast-limit=11000 --slow-limit=11000"
1375 10.5 20.5 5.85 170.9 0.119 "ryzenadj --stapm-limit=10500 --fast-limit=10500 --slow-limit=10500"
1350 10 20 6.14 162.8 0.122 "ryzenadj --stapm-limit=10000 --fast-limit=10000 --slow-limit=10000"
1250 8.5 17.5 7.77 128.7 0.135 "ryzenadj --stapm-limit=8500 --fast-limit=8500 --slow-limit=8500"
630 7 15 10.15 98.5 0.152 "ryzenadj --stapm-limit=7000 --fast-limit=7000 --slow-limit=7000"
400 5 11.5 16.90 59.1 0.194 "ryzenadj --stapm-limit=5000 --fast-limit=5000 --slow-limit=5000"
Stock settings appear to target 25W for a few minutes, settling down to a 15W target for a sustained workload, so the 15W target figure above is representative of stock settings. The clock, power at the wall and ms/it are all eyeballed, most of the clocks were variable within a few hundred MHz (except the 1400 and 400 ones, they remained solid). The wall power figures have the potential to be lower than shown, the NVMe drive is potentially power hungry and there's twice as many RAM chips than is necessary if you can find dual rank 2x8 SO-DIMMs. Wifi was on, bluetooth may have been, and Ubuntu 20.04 is stock with no power saving measures attempted yet.
Tried to run FlopsCL (
http://olab.is.s.u-tokyo.ac.jp/~kami.../projects.html ) to measure the GFlops of the iGPU, it compiled after setting OPENCL_LIBRARY_DIR = /opt/rocm/lib/ and OPENCL_INCLUDE_DIR = /opt/rocm/opencl/include/ in the Makefile, but the kernels fail. It might be because the rocm install doesn't appear to include OpenCL 2.0? /opt/rocm/opencl/lib/made no difference:
Code:
pn50@pn50:~/FlopsCL_src_linux$ ./flops
1 OpenCL platform(s) detected:
Platform 0: Advanced Micro Devices, Inc. AMD Accelerated Parallel Processing OpenCL 2.0 AMD-APP (3186.0), FULL_PROFILE
1 device(s) found supporting OpenCL:
Device 0:
CL_DEVICE_NAME = gfx900
CL_DEVICE_VENDOR = Advanced Micro Devices, Inc.
CL_DEVICE_VERSION = OpenCL 2.0
CL_DRIVER_VERSION = 3186.0 (HSA1.1,LC)
CL_DEVICE_MAX_COMPUTE_UNITS = 27
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = 3
CL_DEVICE_MAX_WORK_ITEM_SIZES = 1024 / 1024 / 1024
CL_DEVICE_MAX_WORK_GROUP_SIZE = 256
CL_DEVICE_MAX_CLOCK_FREQUENCY = 1600 MHz
CL_DEVICE_GLOBAL_MEM_SIZE = 512 MB
CL_DEVICE_ERROR_CORRECTION_SUPPORT = NO
CL_DEVICE_LOCAL_MEM_SIZE = 64 kB
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE = 445644 kB
Compiling...
Starting tests...
ERROR: clEnqueueNDRangeKernel failed, cl_invalid_work_group_size
[float ] Time: 0.016776s, 16385.00 GFLOP/s
ERROR: clEnqueueNDRangeKernel failed, cl_invalid_work_group_size
[float2 ] Time: 0.016776s, 32770.00 GFLOP/s
The 27 CU figure looks suspect and there are 7 GPU cores that don't look like they're represented, but it could be legit for all I know. If you squint real hard it almost looks like a 16 TFlops iGPU exists so that's fun.