SChernykh / RandomX_OpenCL

RandomX OpenCL implementation
GNU General Public License v3.0
29 stars 7 forks source link

Unable to run benchmark on older Nvidia 3100m (Integrated) video card #11

Open bcheeves opened 3 years ago

bcheeves commented 3 years ago

Hi,

Thanks for taking the time to read this. I realize that the video card in this notebook PC is rather old in terms of technology. The main issue that I have with this one is that the Nvidia graphics chip was pretty high end, when I got it, but it only supports SM/Compute mode <=1.2. I've tested the card with clinfo, and the drivers look fine. I'm really not sure if this old of card is supported or not, this is more of a test to see what I can do with this old chip, pushing it to the limit, I realize I'm not going to get any decent mining performance out of it. I probaly wouldn't have filed this as an issue, given the age of the card but I haven't seen a compatibility matrix yet, and the release comments seem to indicate that it should work with any GPU that supports openCL

I'm happy to provide more details if needed.

sysinfo.txt

clinfo output: `>clinfo.exe Number of platforms 1 Platform Name NVIDIA CUDA Platform Vendor NVIDIA Corporation Platform Version OpenCL 1.1 CUDA 6.5.51 Platform Profile FULL_PROFILE Platform Extensions cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts Platform Extensions function suffix NV

Platform Name NVIDIA CUDA Number of devices 1 Device Name NVS 3100M Device Vendor NVIDIA Corporation Device Vendor ID 0x10de Device Version OpenCL 1.0 CUDA Driver Version 342.00 Device Type GPU Device Topology (NV) <printDeviceInfo:22: get CL_DEVICE_PCI_DOMAIN_ID_NV : error -30> Device Profile FULL_PROFILE Device Available Yes Compiler Available Yes Max compute units 2 Max clock frequency 1468MHz Compute Capability (NV) 1.2 Max work item dimensions 3 Max work item sizes 512x512x64 Max work group size 512 Warp size (NV) 32 Preferred / native vector sizes char 1 / 1 short 1 / 1 int 1 / 1 long 1 / 1 half 0 / 0 (n/a) float 1 / 1 double 0 / 0 (n/a) Half-precision Floating-point support (n/a) Single-precision Floating-point support (core) Denormals No Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Correctly-rounded divide and sqrt operations No Double-precision Floating-point support (n/a) Address bits 32, Little-Endian Global memory size 268435456 (256MiB) Error Correction support No Max memory allocation 134217728 (128MiB) Integrated memory (NV) No Minimum alignment for any data type 128 bytes Alignment of base address 2048 bits (256 bytes) Global Memory cache type None Image support Yes Max number of samplers per kernel 16 Max 2D image size 4096x16383 pixels Max 3D image size 2048x2048x2048 pixels Max number of read image args 128 Max number of write image args 8 Local memory type Local Local memory size 16384 (16KiB) Registers per block (NV) 16384 Max number of constant args 9 Max constant buffer size 65536 (64KiB) Max size of kernel argument 4352 (4.25KiB) Queue properties Out-of-order execution Yes Profiling Yes Profiling timer resolution 1000ns Execution capabilities Run OpenCL kernels Yes Run native kernels No Kernel execution timeout (NV) Yes Concurrent copy and kernel execution (NV) Yes Number of async copy engines 1 Device Extensions cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics

NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) No platform clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) No platform clCreateContext(NULL, ...) [default] No platform clCreateContext(NULL, ...) [other] Success [NV] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No platform ` I've tried using the switch "--portable" as well as without, in both cases it results in an error. The --portable' option states that it requires at least SM 1.3 or higher, which is a little more helpful.

ptxas application ptx input, line 3430; error : Instruction 'mul' requires SM 1.3 or higher, or map_f64_to_f32 directive

and the option without "--portable" seems to indicate that it's an issue with the GPU missing this cl_khr_fp64 extension: `RandomX_OpenCL-windows-x64-v1.1.0>RandomX_OpenCL.exe --mine --validate --platform 0 --device_id 0 --dataset_host --intensity 224 Initializing GPU #0 on OpenCL platform #0

Device name: NVS 3100M Device vendor: NVIDIA Corporation Global memory: 256 MB Local memory: 16 KB Clock speed: 1468 MHz Compute units: 2 OpenCL version: OpenCL 1.0 CUDA Driver version: 342.00 Extensions: cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics

Compiling base_kernels.bin...done Compiling randomx_init.bin...clBuildProgram failed: error -11 :81:1: error: must specify '#pragma OPENCL EXTENSION cl_khr_fp64: enable' before using 'double' double getSmallPositiveFloatBits(const ulong entropy) ^`

SChernykh commented 3 years ago

Double-precision Floating-point support (n/a)

Your GPU doesn't support 64-bit floating point, it can't run this RandomX implementation at all.

bcheeves commented 3 years ago

that makes sense! Thanks for the prompt response. Any tips on an older utility that would work with my legacy GPU? I'm moving to upgrade the laptop soon, but this would be mostly for educational purposes.