[Résolu] OpenCL sous Ubuntu avec Intel(R) HD Graphics. est-ce possible? - Ngux - 07-01-18
Bonjour,
J’installe, je lis, je relis et je comprends rien.
Juste une question : est-il possible d'avoir OpenCL avec DT 2.4 sur Ubuntu 16.04 avec une carte Intel® HD Graphics Skylake ULT GT1.
J'ai installé Beignet. et j'ai suivi la procédure donnée ici : https://askubuntu.com/questions/850281/opencl-on-ubuntu-16-04-intel-sandy-bridge-cpu
Mais dans DT, j'ai toujours OpenCL "not avaliable".
En tripatouillant ces trucs Je suis bien au-dela de ce que je sais faire sur Ubuntu. Un avis éclairé me ferais du bien. Merci
Voici mon clinfo puis le resultat du tools-master.
Code : clinfo
Number of platforms 1
Platform Name Intel Gen OCL Driver
Platform Vendor Intel
Platform Version OpenCL 1.2 beignet 1.1.1
Platform Profile FULL_PROFILE
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_spir cl_khr_icd
Platform Extensions function suffix Intel
Platform Name Intel Gen OCL Driver
Number of devices 1
Device Name Intel(R) HD Graphics Skylake ULT GT1
Device Vendor Intel
Device Vendor ID 0x8086
Device Version OpenCL 1.2 beignet 1.1.1
Driver Version 1.1.1
Device OpenCL C Version OpenCL C 1.2 beignet 1.1.1
Device Type GPU
Device Profile FULL_PROFILE
Max compute units 12
Max clock frequency 1000MHz
Device Partition (core)
Max number of sub-devices 1
Supported partition types None, None, None
Max work item dimensions 3
Max work item sizes 512x512x512
Max work group size 512
Preferred work group size multiple 16
Preferred / native vector sizes
char 16 / 8
short 8 / 8
int 4 / 4
long 2 / 2
half 0 / 8 (cl_khr_fp16)
float 4 / 4
double 0 / 2 (n/a)
Half-precision Floating-point support (cl_khr_fp16)
Denormals No
Infinity and NANs Yes
Round to nearest Yes
Round to zero No
Round to infinity No
IEEE754-2008 fused multiply-add No
Support is emulated in software No
Correctly-rounded divide and sqrt operations No
Single-precision Floating-point support (core)
Denormals No
Infinity and NANs Yes
Round to nearest Yes
Round to zero No
Round to infinity No
IEEE754-2008 fused multiply-add No
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 2147483648 (2GiB)
Error Correction support No
Max memory allocation 1073741824 (1024MiB)
Unified memory for Host and Device Yes
Minimum alignment for any data type 128 bytes
Alignment of base address 1024 bits (128 bytes)
Global Memory cache type Read/Write
Global Memory cache size 8192
Global Memory cache line 64 bytes
Image support Yes
Max number of samplers per kernel 16
Max size for 1D images from buffer 65536 pixels
Max 1D or 2D image array size 2048 images
Max 2D image size 8192x8192 pixels
Max 3D image size 8192x8192x2048 pixels
Max number of read image args 128
Max number of write image args 8
Local memory type Global
Local memory size 65536 (64KiB)
Max constant buffer size 134217728 (128MiB)
Max number of constant args 8
Max size of kernel argument 1024
Queue properties
Out-of-order execution No
Profiling Yes
Prefer user sync for interop Yes
Profiling timer resolution 80ns
Execution capabilities
Run OpenCL kernels Yes
Run native kernels Yes
SPIR versions <printDeviceInfo:138: get SPIR versions size : error -30>
printf() buffer size 1048576 (1024KiB)
Built-in kernels __cl_copy_region_align4;__cl_copy_region_align16;__cl_cpy_region_unalign_same_offset;__cl_copy_region_unalign_dst_offset;__cl_copy_region_unalign_src_offset;__cl_copy_buffer_rect;__cl_copy_image_1d_to_1d;__cl_copy_image_2d_to_2d;__cl_copy_image_3d_to_2d;__cl_copy_image_2d_to_3d;__cl_copy_image_3d_to_3d;__cl_copy_image_2d_to_buffer;__cl_copy_image_3d_to_buffer;__cl_copy_buffer_to_image_2d;__cl_copy_buffer_to_image_3d;__cl_fill_region_unalign;__cl_fill_region_align2;__cl_fill_region_align4;__cl_fill_region_align8_2;__cl_fill_region_align8_4;__cl_fill_region_align8_8;__cl_fill_region_align8_16;__cl_fill_region_align128;__cl_fill_image_1d;__cl_fill_image_1d_array;__cl_fill_image_2d;__cl_fill_image_2d_array;__cl_fill_image_3d;
Device Available Yes
Compiler Available Yes
Linker Available Yes
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_fp16 cl_khr_spir cl_khr_icd
NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) Intel Gen OCL Driver
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Success [Intel]
clCreateContext(NULL, ...) [default] Success [Intel]
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1)
Platform Name Intel Gen OCL Driver
Device Name Intel(R) HD Graphics Skylake ULT GT1
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1)
Platform Name Intel Gen OCL Driver
Device Name Intel(R) HD Graphics Skylake ULT GT1
ICD loader properties
ICD loader Name OpenCL ICD Loader
ICD loader Vendor OCL Icd free software
ICD loader Version 2.2.8
ICD loader Profile OpenCL 1.2
NOTE: your OpenCL library declares to support OpenCL 1.2,
but it seems to support up to OpenCL 2.1 too.
Et le resultat du test tools.master
Code : ./print-devices
platform 0: vendor 'Intel'
device 0: 'Intel(R) HD Graphics Skylake ULT GT1'
ngux:~/Downloads/tools-master/ $ ./cl-demo 1000 10
Choose platform:
[0] Intel
Enter choice: 0
Choose device:
[0] Intel(R) HD Graphics Skylake ULT GT1
Enter choice: 0
---------------------------------------------------------------------
NAME: Intel(R) HD Graphics Skylake ULT GT1
VENDOR: Intel
PROFILE: FULL_PROFILE
VERSION: OpenCL 1.2 beignet 1.1.1
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_fp16 cl_khr_spir cl_khr_icd
DRIVER_VERSION: 1.1.1
Type: GPU
EXECUTION_CAPABILITIES: Kernel Native
GLOBAL_MEM_CACHE_TYPE: Read-Write (2)
CL_DEVICE_LOCAL_MEM_TYPE: Global (2)
SINGLE_FP_CONFIG: 0x6
QUEUE_PROPERTIES: 0x2
VENDOR_ID: 32902
MAX_COMPUTE_UNITS: 12
MAX_WORK_ITEM_DIMENSIONS: 3
MAX_WORK_GROUP_SIZE: 512
PREFERRED_VECTOR_WIDTH_CHAR: 16
PREFERRED_VECTOR_WIDTH_SHORT: 8
PREFERRED_VECTOR_WIDTH_INT: 4
PREFERRED_VECTOR_WIDTH_LONG: 2
PREFERRED_VECTOR_WIDTH_FLOAT: 4
PREFERRED_VECTOR_WIDTH_DOUBLE: 0
MAX_CLOCK_FREQUENCY: 1000
ADDRESS_BITS: 32
MAX_MEM_ALLOC_SIZE: 1073741824
IMAGE_SUPPORT: 1
MAX_READ_IMAGE_ARGS: 128
MAX_WRITE_IMAGE_ARGS: 8
IMAGE2D_MAX_WIDTH: 8192
IMAGE2D_MAX_HEIGHT: 8192
IMAGE3D_MAX_WIDTH: 8192
IMAGE3D_MAX_HEIGHT: 8192
IMAGE3D_MAX_DEPTH: 2048
MAX_SAMPLERS: 16
MAX_PARAMETER_SIZE: 1024
MEM_BASE_ADDR_ALIGN: 1024
MIN_DATA_TYPE_ALIGN_SIZE: 128
GLOBAL_MEM_CACHELINE_SIZE: 64
GLOBAL_MEM_CACHE_SIZE: 8192
GLOBAL_MEM_SIZE: 2147483648
MAX_CONSTANT_BUFFER_SIZE: 134217728
MAX_CONSTANT_ARGS: 8
LOCAL_MEM_SIZE: 65536
ERROR_CORRECTION_SUPPORT: 0
PROFILING_TIMER_RESOLUTION: 80
ENDIAN_LITTLE: 1
AVAILABLE: 1
COMPILER_AVAILABLE: 1
MAX_WORK_GROUP_SIZES: 512 512 512
---------------------------------------------------------------------
*** Kernel compilation resulted in non-empty log message.
*** Set environment variable CL_HELPER_PRINT_COMPILER_OUTPUT=1 to see more.
*** NOTE: this may include compiler warnings and other important messages
*** about your code.
*** Set CL_HELPER_NO_COMPILER_OUTPUT_NAG=1 to disable this message.
0.000188 s
0.063956 GB/s
GOOD
RE: OpenCL sous Ubuntu avec Intel(R) HD Graphics. est-ce possible? - pascal - 07-01-18
En théorie oui, en pratique non. Le driver Beignet OpenCL d'intel est buggé (il y a eu une discussion avec une personne d'intel sur la liste de diffusion dev si mes souvenirs sont bons). Et en plus bien souvent l'OpenCL intel est moins puissant que le CPU. Pour OpenCL il est conseillé une NVIDIA ou AMD, et encore sous Linux AMD pose des problèmes avec certaines anciennes cartes.
RE: OpenCL sous Ubuntu avec Intel(R) HD Graphics. est-ce possible? - aurelienpierre - 07-01-18
Il faut préciser un truc important : une carte graphique, à la base, c'est fait pour faire tourner OpenGL ou DirectX, donc du rendu vidéo.
Mais une carte graphique, c'est massivement multi-cœur (min 144 sur des cartes bas de gamme) et ça a une architecture un peu différente de celle des processeurs. Et il peut-être intéressant d'ouvrir cette puissance de calcul à autre chose qu'aux jeux vidéos.
Pour ça, Nvidia a sorti CUDA, mais c'est une librairie proprio qui ne marche que sur des cartes graphiques Nvidia. Le groupe Khronos a donc sorti un standard multi-vendeurs pour : OpenCL.
Tous les modules darktable ont une version processeur classique, optimisée avec les jeux d'instructions spécifiques en fonction de l'architecture. Certains ont en bonus une version OpenCL pour carte graphique.
Mais utiliser OpenCL sur le processeur, ça revient à rajouter une couche peu optimisée par dessus les instructions natives du processeur, pour lesquelles dt a déjà tout ce qu'il faut. Ça n'a aucun intérêt…
RE: OpenCL sous Ubuntu avec Intel(R) HD Graphics. est-ce possible? - Ngux - 08-01-18
(07-01-18, 13:00)pascal a écrit : En théorie oui, en pratique non. Le driver Beignet OpenCL d'intel est buggé (il y a eu une discussion avec une personne d'intel sur la liste de diffusion dev si mes souvenirs sont bons). Et en plus bien souvent l'OpenCL intel est moins puissant que le CPU. Pour OpenCL il est conseillé une NVIDIA ou AMD, et encore sous Linux AMD pose des problèmes avec certaines anciennes cartes.
Merci Pascal. C'est tout à fait l'info dont j'avais besoin. Je passe en [Résolu]
(07-01-18, 16:55)aurelienpierre a écrit : Mais utiliser OpenCL sur le processeur, ça revient à rajouter une couche peu optimisée par dessus les instructions natives du processeur, pour lesquelles dt a déjà tout ce qu'il faut. Ça n'a aucun intérêt…
Merci Aurélien. J'ai posé la question pour Linux mais du coup je pense à DT sur Window où là j'ai bien OpenCL.
Me conseilles-tu de décocher l'OpenCL sur Windows ?
|