Thank you for the reply. I appreciate the clarification.
Introduce ROCK 5B - ARM Desktop level SBC
wow cool,
i didnt think i will get my email in october
and thankyou for the reply
sorry but it has no lane information
What I pasted is what I got
Are there any other commands I can try?
maybe this could work: sudo lspci -nv
i think the rock 5b doesnt support accesing these infos
Ameridroid said in an email to me. shipping will be starting anywhere from the 20th - 31th of october.
but i still havenât received an email with tracking info yetâŚ
We are waiting to find out if the factory is sending the emails with the tracking information or if they will send the tracking information to us so we can contact our customers.
Successifully started Debian 11 from eMMC. Intel AX210NGW WIFI 6E m.2 adapter started after sudo apt update && sudo apt upgrade, NVME disk detected. I connected 4k signal to HDMI input and try to output signal with QT V4L2 test utility but it showâs black screen over OpenGL. Seemâs like video acceleration doesnât work:
rock@rock-5b:~$ glxgears
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
1383 frames in 5.0 seconds = 276.496 FPS
Is it es2gears you need as the mali blob is only opengl-es2?
mesa-utils-extra
I forgot about vblank_mode=0 glxgears. ~300fps, es2gears given 52 fps. I compire with raspberry p4 - more than 850 fps in two cases.
glmark2-es2 is in the repo and think already installed as forgot if I did or not.
The FPS & glmark2 with the current mali blob seems fairly stinky to be honest and guess is still work in progress.
The Mesa drivers for the G52mp4 glmark2-es2 are quite a bit faster than what we currently have and the A311D implementation was supposed to be sub par, so dunno.
The Linux results donât seem to correlate to what they where posting with Android which might not anyway, but same glmark2-es2 slower than the G52mp4 glmark2-es2 is a bit of a !?!
The Hardware design of the G610 much favors Vulcan so maybe we are using the wrong benches.
In this case, itâs less the hardware design than the software design.
Android seems to prefer explicit sync for inter-process synchronisation, whereas Xorg and some Wayland compositors rely only on implicit sync. kbase
had some support for implicit sync with older GPUs, but for CSF GPUs like the Mali-G610 itâs completely gone, so only explicit synchronisation through passing sync FDs is possible.
What that means is that compositors have no idea when they can start using a surface passed from an application, and so immediately start rendering. If the application is still rendering then that causes problems, but drivers work around that by effectively doing a glFinish
and waiting for rendering to finish before passing the frame on to the compositor. This means that the CPU and GPU cannot work in parallel, which hurts performance a lot.
I think the Wayland blob might work around this problem somehow, but Iâm not entirely sure.
(IIRC non-free nvidia drivers also use explicit sync exclusively, which causes a lot of problems.)
I noticed the basics of the rk3588 have been pushed to Linux Next so it will boot and expecting or at least hoping Alyssa & co might be having a look also.
I have seen your posts and great work but much past my knowledge.
I eventually got ArmNN delegate working with their Wav2Letter example which with CpuAcc gets all cores going at about 55%, with the GpuAcc I was sort of confused as maybe a tad faster but all it seemed to do was drop all cores by about 5%, which I found rather underwhelming but maybe my misunderstanding of the G610s ML capability or the manner ArmNN works, but its OpenCl based and maybe that also is lack lustre.
Command Stream Frontend which is a new part of ValhallâŚ
Now I get what the csffw.bin binary is as was wondering why an additional binary to the mali but does that not mean CFS & Driver now run in separate processes?
I just remember the Arm sales blurb that often repeated CSF was to align with Vulkan more hence why that stuck in my head.
It does seem like we are seeing the true capability on Android but so far its just not plumbed in right on Linux⌠?
./test_computeinfo
Initializing random seed to 0.
Requesting Default device based on command line for platform index 0 and device index 0
arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '5'.
Compute Device Name = Mali-LODX r0p0, Compute Device Vendor = ARM, Compute Device Version = OpenCL 2.1 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1, CL C Version = OpenCL C 2.0 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1
Supports single precision denormals: YES
sizeof( void*) = 8 (host)
sizeof( void*) = 8 (device)
computeinfo...
clGetPlatformInfo:
------------------
CL_PLATFORM_VERSION == "OpenCL 2.1 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1"
CL_PLATFORM_PROFILE == "FULL_PROFILE"
CL_PLATFORM_NAME == "ARM Platform"
CL_PLATFORM_VENDOR == "ARM"
CL_PLATFORM_EXTENSIONS == "cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_scheduling_controls cl_arm_controlled_kernel_termination cl_ext_cxx_for_opencl"
Skipped: CL_PLATFORM_EXTENSIONS_WITH_VERSION.
Skipped: CL_PLATFORM_NUMERIC_VERSION.
Getting device IDs for CL_DEVICE_TYPE_DEFAULT devices
Found 1 CL_DEVICE_TYPE_DEFAULT devices:
CL_DEVICE_TYPE_DEFAULT Device 1 of 1 Info:
CL_DEVICE_VERSION == "OpenCL 2.1 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1"
CL_DEVICE_EXTENSIONS == "cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_scheduling_controls cl_arm_controlled_kernel_termination cl_ext_cxx_for_opencl"
CL_DEVICE_TYPE == |CL_DEVICE_TYPE_GPU||
CL_DEVICE_VENDOR_ID == 2825322496
CL_DEVICE_MAX_COMPUTE_UNITS == 4
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS == 3
CL_DEVICE_MAX_WORK_ITEM_SIZES == 1024 1024 1024
CL_DEVICE_MAX_WORK_GROUP_SIZE == 1024
CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR == 16
CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT == 8
CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT == 4
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG == 2
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT == 4
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE == 0
CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF == 8
CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR == 4
CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT == 2
CL_DEVICE_NATIVE_VECTOR_WIDTH_INT == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE == 0
CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF == 2
CL_DEVICE_MAX_CLOCK_FREQUENCY == 1000
CL_DEVICE_ADDRESS_BITS == 64
CL_DEVICE_MAX_READ_IMAGE_ARGS == 128
CL_DEVICE_MAX_WRITE_IMAGE_ARGS == 64
CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS == 64
CL_DEVICE_MAX_MEM_ALLOC_SIZE == 3914739712
CL_DEVICE_IMAGE2D_MAX_WIDTH == 65536
CL_DEVICE_IMAGE2D_MAX_HEIGHT == 65536
CL_DEVICE_IMAGE3D_MAX_WIDTH == 65536
CL_DEVICE_IMAGE3D_MAX_HEIGHT == 65536
CL_DEVICE_IMAGE3D_MAX_DEPTH == 65536
CL_DEVICE_IMAGE_MAX_ARRAY_SIZE == 2048
CL_DEVICE_IMAGE_MAX_BUFFER_SIZE == 65536
CL_DEVICE_IMAGE_SUPPORT == 1
CL_DEVICE_MAX_PARAMETER_SIZE == 1024
CL_DEVICE_MAX_SAMPLERS == 16
CL_DEVICE_IMAGE_PITCH_ALIGNMENT == 64
CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT == 32
CL_DEVICE_MEM_BASE_ADDR_ALIGN == 1024
CL_DEVICE_SINGLE_FP_CONFIG == CL_FP_DENORM|CL_FP_INF_NAN|CL_FP_ROUND_TO_NEAREST|CL_FP_ROUND_TO_ZERO|CL_FP_ROUND_TO_INF|CL_FP_FMA|
CL_DEVICE_DOUBLE_FP_CONFIG == ||||||
CL_DEVICE_GLOBAL_MEM_CACHE_TYPE == CL_READ_WRITE_CACHE
CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE == 64
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE == 1048576
CL_DEVICE_GLOBAL_MEM_SIZE == 3914739712
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE == 3914739712
CL_DEVICE_MAX_CONSTANT_ARGS == 128
CL_DEVICE_LOCAL_MEM_TYPE == CL_GLOBAL
CL_DEVICE_LOCAL_MEM_SIZE == 32768
CL_DEVICE_ERROR_CORRECTION_SUPPORT == 0
CL_DEVICE_HOST_UNIFIED_MEMORY == 1
CL_DEVICE_PROFILING_TIMER_RESOLUTION == 1000
CL_DEVICE_ENDIAN_LITTLE == 1
CL_DEVICE_AVAILABLE == 1
CL_DEVICE_COMPILER_AVAILABLE == 1
CL_DEVICE_LINKER_AVAILABLE == 1
CL_DEVICE_BUILT_IN_KERNELS == ""
CL_DEVICE_PRINTF_BUFFER_SIZE == 1048576
CL_DEVICE_PREFERRED_INTEROP_USER_SYNC == 0
CL_DEVICE_PARENT_DEVICE == 0
CL_DEVICE_PARTITION_MAX_SUB_DEVICES == 0
CL_DEVICE_PARTITION_AFFINITY_DOMAIN == |||||
CL_DEVICE_REFERENCE_COUNT == 1
CL_DEVICE_EXECUTION_CAPABILITIES == CL_EXEC_KERNEL|
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_NAME == "Mali-LODX r0p0"
CL_DEVICE_VENDOR == "ARM"
CL_DRIVER_VERSION == "2.1"
CL_DEVICE_PROFILE == "FULL_PROFILE"
CL_DEVICE_OPENCL_C_VERSION == "OpenCL C 2.0 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1"
CL_DEVICE_MAX_PIPE_ARGS == 16
CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS == 1
CL_DEVICE_PIPE_MAX_PACKET_SIZE == 1024
CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE == 65536
CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE == 0
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE == 2097152
CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE == 16777216
CL_DEVICE_MAX_ON_DEVICE_QUEUES == 1
CL_DEVICE_MAX_ON_DEVICE_EVENTS == 1024
CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT == 0
CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT == 0
CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT == 0
CL_DEVICE_SVM_CAPABILITIES == CL_DEVICE_SVM_COARSE_GRAIN_BUFFER|||
CL_DEVICE_IL_VERSION == "SPIR-V_1.0"
CL_DEVICE_MAX_NUM_SUB_GROUPS == 64
CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS == 1
Skipped: CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES.
Skipped: CL_DEVICE_ATOMIC_FENCE_CAPABILITIES.
Skipped: CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT.
Skipped: CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE.
Skipped: CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT.
Skipped: CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT.
Skipped: CL_DEVICE_OPENCL_C_FEATURES.
Skipped: CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES.
Skipped: CL_DEVICE_PIPE_SUPPORT.
Skipped: CL_DEVICE_NUMERIC_VERSION.
Skipped: CL_DEVICE_EXTENSIONS_WITH_VERSION.
Skipped: CL_DEVICE_OPENCL_C_ALL_VERSIONS.
Skipped: CL_DEVICE_ILS_WITH_VERSION.
Skipped: CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION.
CL_DEVICE_IMAGE_PITCH_ALIGNMENT == 64
CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT == 32
CL_MEM_OBJECT_IMAGE1D supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE1D_BUFFER supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE2D supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE3D supported formats:
CL_MEM_READ_ONLY: 58 supported formats
CL_MEM_WRITE_ONLY: 65 supported formats
CL_MEM_READ_WRITE: 65 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 65 supported formats
CL_MEM_OBJECT_IMAGE1D_ARRAY supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE2D_ARRAY supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
Getting device IDs for CL_DEVICE_TYPE_CPU devices
No devices of type CL_DEVICE_TYPE_CPU found.
Getting device IDs for CL_DEVICE_TYPE_GPU devices
Found 1 CL_DEVICE_TYPE_GPU devices:
CL_DEVICE_TYPE_GPU Device 1 of 1 Info:
CL_DEVICE_VERSION == "OpenCL 2.1 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1"
CL_DEVICE_EXTENSIONS == "cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_scheduling_controls cl_arm_controlled_kernel_termination cl_ext_cxx_for_opencl"
CL_DEVICE_TYPE == |CL_DEVICE_TYPE_GPU||
CL_DEVICE_VENDOR_ID == 2825322496
CL_DEVICE_MAX_COMPUTE_UNITS == 4
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS == 3
CL_DEVICE_MAX_WORK_ITEM_SIZES == 1024 1024 1024
CL_DEVICE_MAX_WORK_GROUP_SIZE == 1024
CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR == 16
CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT == 8
CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT == 4
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG == 2
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT == 4
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE == 0
CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF == 8
CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR == 4
CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT == 2
CL_DEVICE_NATIVE_VECTOR_WIDTH_INT == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE == 0
CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF == 2
CL_DEVICE_MAX_CLOCK_FREQUENCY == 1000
CL_DEVICE_ADDRESS_BITS == 64
CL_DEVICE_MAX_READ_IMAGE_ARGS == 128
CL_DEVICE_MAX_WRITE_IMAGE_ARGS == 64
CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS == 64
CL_DEVICE_MAX_MEM_ALLOC_SIZE == 3914739712
CL_DEVICE_IMAGE2D_MAX_WIDTH == 65536
CL_DEVICE_IMAGE2D_MAX_HEIGHT == 65536
CL_DEVICE_IMAGE3D_MAX_WIDTH == 65536
CL_DEVICE_IMAGE3D_MAX_HEIGHT == 65536
CL_DEVICE_IMAGE3D_MAX_DEPTH == 65536
CL_DEVICE_IMAGE_MAX_ARRAY_SIZE == 2048
CL_DEVICE_IMAGE_MAX_BUFFER_SIZE == 65536
CL_DEVICE_IMAGE_SUPPORT == 1
CL_DEVICE_MAX_PARAMETER_SIZE == 1024
CL_DEVICE_MAX_SAMPLERS == 16
CL_DEVICE_IMAGE_PITCH_ALIGNMENT == 64
CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT == 32
CL_DEVICE_MEM_BASE_ADDR_ALIGN == 1024
CL_DEVICE_SINGLE_FP_CONFIG == CL_FP_DENORM|CL_FP_INF_NAN|CL_FP_ROUND_TO_NEAREST|CL_FP_ROUND_TO_ZERO|CL_FP_ROUND_TO_INF|CL_FP_FMA|
CL_DEVICE_DOUBLE_FP_CONFIG == ||||||
CL_DEVICE_GLOBAL_MEM_CACHE_TYPE == CL_READ_WRITE_CACHE
CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE == 64
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE == 1048576
CL_DEVICE_GLOBAL_MEM_SIZE == 3914739712
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE == 3914739712
CL_DEVICE_MAX_CONSTANT_ARGS == 128
CL_DEVICE_LOCAL_MEM_TYPE == CL_GLOBAL
CL_DEVICE_LOCAL_MEM_SIZE == 32768
CL_DEVICE_ERROR_CORRECTION_SUPPORT == 0
CL_DEVICE_HOST_UNIFIED_MEMORY == 1
CL_DEVICE_PROFILING_TIMER_RESOLUTION == 1000
CL_DEVICE_ENDIAN_LITTLE == 1
CL_DEVICE_AVAILABLE == 1
CL_DEVICE_COMPILER_AVAILABLE == 1
CL_DEVICE_LINKER_AVAILABLE == 1
CL_DEVICE_BUILT_IN_KERNELS == ""
CL_DEVICE_PRINTF_BUFFER_SIZE == 1048576
CL_DEVICE_PREFERRED_INTEROP_USER_SYNC == 0
CL_DEVICE_PARENT_DEVICE == 0
CL_DEVICE_PARTITION_MAX_SUB_DEVICES == 0
CL_DEVICE_PARTITION_AFFINITY_DOMAIN == |||||
CL_DEVICE_REFERENCE_COUNT == 1
CL_DEVICE_EXECUTION_CAPABILITIES == CL_EXEC_KERNEL|
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_NAME == "Mali-LODX r0p0"
CL_DEVICE_VENDOR == "ARM"
CL_DRIVER_VERSION == "2.1"
CL_DEVICE_PROFILE == "FULL_PROFILE"
CL_DEVICE_OPENCL_C_VERSION == "OpenCL C 2.0 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1"
CL_DEVICE_MAX_PIPE_ARGS == 16
CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS == 1
CL_DEVICE_PIPE_MAX_PACKET_SIZE == 1024
CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE == 65536
CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE == 0
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE == 2097152
CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE == 16777216
CL_DEVICE_MAX_ON_DEVICE_QUEUES == 1
CL_DEVICE_MAX_ON_DEVICE_EVENTS == 1024
CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT == 0
CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT == 0
CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT == 0
CL_DEVICE_SVM_CAPABILITIES == CL_DEVICE_SVM_COARSE_GRAIN_BUFFER|||
CL_DEVICE_IL_VERSION == "SPIR-V_1.0"
CL_DEVICE_MAX_NUM_SUB_GROUPS == 64
CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS == 1
Skipped: CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES.
Skipped: CL_DEVICE_ATOMIC_FENCE_CAPABILITIES.
Skipped: CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT.
Skipped: CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE.
Skipped: CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT.
Skipped: CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT.
Skipped: CL_DEVICE_OPENCL_C_FEATURES.
Skipped: CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES.
Skipped: CL_DEVICE_PIPE_SUPPORT.
Skipped: CL_DEVICE_NUMERIC_VERSION.
Skipped: CL_DEVICE_EXTENSIONS_WITH_VERSION.
Skipped: CL_DEVICE_OPENCL_C_ALL_VERSIONS.
Skipped: CL_DEVICE_ILS_WITH_VERSION.
Skipped: CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION.
CL_DEVICE_IMAGE_PITCH_ALIGNMENT == 64
CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT == 32
CL_MEM_OBJECT_IMAGE1D supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE1D_BUFFER supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE2D supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE3D supported formats:
CL_MEM_READ_ONLY: 58 supported formats
CL_MEM_WRITE_ONLY: 65 supported formats
CL_MEM_READ_WRITE: 65 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 65 supported formats
CL_MEM_OBJECT_IMAGE1D_ARRAY supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE2D_ARRAY supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
Getting device IDs for CL_DEVICE_TYPE_ACCELERATOR devices
No devices of type CL_DEVICE_TYPE_ACCELERATOR found.
Getting device IDs for CL_DEVICE_TYPE_ALL devices
Found 1 CL_DEVICE_TYPE_ALL devices:
CL_DEVICE_TYPE_ALL Device 1 of 1 Info:
CL_DEVICE_VERSION == "OpenCL 2.1 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1"
CL_DEVICE_EXTENSIONS == "cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_scheduling_controls cl_arm_controlled_kernel_termination cl_ext_cxx_for_opencl"
CL_DEVICE_TYPE == |CL_DEVICE_TYPE_GPU||
CL_DEVICE_VENDOR_ID == 2825322496
CL_DEVICE_MAX_COMPUTE_UNITS == 4
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS == 3
CL_DEVICE_MAX_WORK_ITEM_SIZES == 1024 1024 1024
CL_DEVICE_MAX_WORK_GROUP_SIZE == 1024
CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR == 16
CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT == 8
CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT == 4
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG == 2
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT == 4
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE == 0
CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF == 8
CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR == 4
CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT == 2
CL_DEVICE_NATIVE_VECTOR_WIDTH_INT == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT == 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE == 0
CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF == 2
CL_DEVICE_MAX_CLOCK_FREQUENCY == 1000
CL_DEVICE_ADDRESS_BITS == 64
CL_DEVICE_MAX_READ_IMAGE_ARGS == 128
CL_DEVICE_MAX_WRITE_IMAGE_ARGS == 64
CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS == 64
CL_DEVICE_MAX_MEM_ALLOC_SIZE == 3914739712
CL_DEVICE_IMAGE2D_MAX_WIDTH == 65536
CL_DEVICE_IMAGE2D_MAX_HEIGHT == 65536
CL_DEVICE_IMAGE3D_MAX_WIDTH == 65536
CL_DEVICE_IMAGE3D_MAX_HEIGHT == 65536
CL_DEVICE_IMAGE3D_MAX_DEPTH == 65536
CL_DEVICE_IMAGE_MAX_ARRAY_SIZE == 2048
CL_DEVICE_IMAGE_MAX_BUFFER_SIZE == 65536
CL_DEVICE_IMAGE_SUPPORT == 1
CL_DEVICE_MAX_PARAMETER_SIZE == 1024
CL_DEVICE_MAX_SAMPLERS == 16
CL_DEVICE_IMAGE_PITCH_ALIGNMENT == 64
CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT == 32
CL_DEVICE_MEM_BASE_ADDR_ALIGN == 1024
CL_DEVICE_SINGLE_FP_CONFIG == CL_FP_DENORM|CL_FP_INF_NAN|CL_FP_ROUND_TO_NEAREST|CL_FP_ROUND_TO_ZERO|CL_FP_ROUND_TO_INF|CL_FP_FMA|
CL_DEVICE_DOUBLE_FP_CONFIG == ||||||
CL_DEVICE_GLOBAL_MEM_CACHE_TYPE == CL_READ_WRITE_CACHE
CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE == 64
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE == 1048576
CL_DEVICE_GLOBAL_MEM_SIZE == 3914739712
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE == 3914739712
CL_DEVICE_MAX_CONSTANT_ARGS == 128
CL_DEVICE_LOCAL_MEM_TYPE == CL_GLOBAL
CL_DEVICE_LOCAL_MEM_SIZE == 32768
CL_DEVICE_ERROR_CORRECTION_SUPPORT == 0
CL_DEVICE_HOST_UNIFIED_MEMORY == 1
CL_DEVICE_PROFILING_TIMER_RESOLUTION == 1000
CL_DEVICE_ENDIAN_LITTLE == 1
CL_DEVICE_AVAILABLE == 1
CL_DEVICE_COMPILER_AVAILABLE == 1
CL_DEVICE_LINKER_AVAILABLE == 1
CL_DEVICE_BUILT_IN_KERNELS == ""
CL_DEVICE_PRINTF_BUFFER_SIZE == 1048576
CL_DEVICE_PREFERRED_INTEROP_USER_SYNC == 0
CL_DEVICE_PARENT_DEVICE == 0
CL_DEVICE_PARTITION_MAX_SUB_DEVICES == 0
CL_DEVICE_PARTITION_AFFINITY_DOMAIN == |||||
CL_DEVICE_REFERENCE_COUNT == 1
CL_DEVICE_EXECUTION_CAPABILITIES == CL_EXEC_KERNEL|
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_NAME == "Mali-LODX r0p0"
CL_DEVICE_VENDOR == "ARM"
CL_DRIVER_VERSION == "2.1"
CL_DEVICE_PROFILE == "FULL_PROFILE"
CL_DEVICE_OPENCL_C_VERSION == "OpenCL C 2.0 v1.g6p0-01eac0.efb75e2978d783a80fe78be1bfb0efc1"
CL_DEVICE_MAX_PIPE_ARGS == 16
CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS == 1
CL_DEVICE_PIPE_MAX_PACKET_SIZE == 1024
CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE == 65536
CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE == 0
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES == CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE|CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE == 2097152
CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE == 16777216
CL_DEVICE_MAX_ON_DEVICE_QUEUES == 1
CL_DEVICE_MAX_ON_DEVICE_EVENTS == 1024
CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT == 0
CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT == 0
CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT == 0
CL_DEVICE_SVM_CAPABILITIES == CL_DEVICE_SVM_COARSE_GRAIN_BUFFER|||
CL_DEVICE_IL_VERSION == "SPIR-V_1.0"
CL_DEVICE_MAX_NUM_SUB_GROUPS == 64
CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS == 1
Skipped: CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES.
Skipped: CL_DEVICE_ATOMIC_FENCE_CAPABILITIES.
Skipped: CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT.
Skipped: CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE.
Skipped: CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT.
Skipped: CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT.
Skipped: CL_DEVICE_OPENCL_C_FEATURES.
Skipped: CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES.
Skipped: CL_DEVICE_PIPE_SUPPORT.
Skipped: CL_DEVICE_NUMERIC_VERSION.
Skipped: CL_DEVICE_EXTENSIONS_WITH_VERSION.
Skipped: CL_DEVICE_OPENCL_C_ALL_VERSIONS.
Skipped: CL_DEVICE_ILS_WITH_VERSION.
Skipped: CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION.
CL_DEVICE_IMAGE_PITCH_ALIGNMENT == 64
CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT == 32
CL_MEM_OBJECT_IMAGE1D supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE1D_BUFFER supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE2D supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE3D supported formats:
CL_MEM_READ_ONLY: 58 supported formats
CL_MEM_WRITE_ONLY: 65 supported formats
CL_MEM_READ_WRITE: 65 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 65 supported formats
CL_MEM_OBJECT_IMAGE1D_ARRAY supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
CL_MEM_OBJECT_IMAGE2D_ARRAY supported formats:
CL_MEM_READ_ONLY: 60 supported formats
CL_MEM_WRITE_ONLY: 67 supported formats
CL_MEM_READ_WRITE: 67 supported formats
CL_MEM_KERNEL_READ_AND_WRITE: 67 supported formats
computeinfo passed
extended_versioning...
Platform versions:
Matched the platform version
Platform extensions:
Matched 35 extensions
Device versions:
Matched the device OpenCL and OpenCL C versions
Device extensions:
Matched 35 extensions
Device ILs:
Matched 1 ILs
Device built-in kernels:
Matched 0 kernels
extended_versioning passed
device_uuid...
Device UUID: 000067a8010000000000000000000000
Driver UUID: d9495befea917c528a438a3c2f7b49cc
Device LUID validity is false
Device LUID: 0000000000000000
Node mask : 00000000
device_uuid passed
conformance_version...
conformance_version skipped (requires at least OpenCL version 3.0, but the device reports OpenCL version 2.1)
pci_bus_info...
cl_khr_pci_bus_info not supported. Skipping test...
pci_bus_info test not supported
PASSED sub-test.
PASSED 3 of 3 tests.
All seems ok apart from performance.
That binary is firmware for a Cortex-M7 MCU that is inside the GPU. It handles a bunch of tasks that the kernel cannot do because of the latency, as it is quite difficult to access GPU memory from the CPUâthe memory first needs to be mapped into the kernel address space with the correct attributes, and then every access is slow because there is no coherency with the GPU.
The MCU solves this by sharing an L2 cache with the GPU to get coherency, and including a mechanism for mapping GPU memory into its own address space in just a few nanoseconds. This makes it quite easy to access GPU memory, and is what makes the Command Stream Frontend possible.
Tasks that were previously done on the CPU before job submission can now be handled by the command stream processor, but that processor frequently has to interrupt the MCU to get assistance with handling an instruction. If it had to go all the way to the kernel, then the end result would be worse than the old âJob Managerâ GPUs.
(I think that early prototypes of CSF might have used shader cores to try to run the firmware, but I am not very sure. But if that was tried, I bet Arm found out pretty quickly that debugging was too hard. RK3588 actually exposes a standard MCU debugger interface for the GPU, but from the Rock 5 schematics I donât think itâs very easily accessible. Self-hosted debug works anyhow.)
Why exactly? See here for example⌠If you ask people for lspci
output you should mention sudo
and/or root
as well
yes i messed up you need to run it with sudo or as root this command should work (and please post the output):
sudo lspci -vv
and sorry
I am not really sure, all I know is that currently the implementation has a 3rd gen Valhall running slower than a 2nd gen Bifrost on a SoC that got criticism of the GPU being quite slow for spec.
Currently the driver in terms of performance is bad as it runs and works, but results are really bad to the levels we should be expecting .
That is with a 1000 Mhz clock rate that must be at the absolute max this thing can run, and 4 generations of increment of some big claims by Arm but it runs slower than a G52mp4 and that is wow bad.
https://developer.arm.com/documentation/102812/0102/GPU-activity?lang=en
I used Armbian in the below due to ppa:liujianfeng1994/panfork-mesa
It means Wayland and is a touch faster now than a g52mp4 but prob still quite a way off what I expected and not exactly sure what driver its using does that use libEGL.so.1
or libEGL_mesa.so.0
?
I might have a go with ArmNN again but may end up in dependency hell as dunno if they stopped with 20.04
Doesnât seem all that stable though.
Good to know, pre-ordered mine from allnet on 20th April and still waiting to place my order (for delivery to France too).
This is going to replace my current setup which urgently needs an upgrade and serve as an all purpose machine:
- 4G + Wifi router
- server (development, âŚ)
Just wondering if 8GB version I took will be enough. Are we able to change RAM quantity at ordering time?
you cant change the ram quantity at ordering time if the coupon should be still valid
but you can upgrade the ram by soldering on a new set of ram chips WARNING thats very dificoult and could destroy your rock 5b
ok will probably avoid upgrading ram for now. but good to know in case I need it in future