ddemidov / vexcl

VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP
http://vexcl.readthedocs.org
MIT License
701 stars 81 forks source link

Benchmark failure.... #210

Open skn123 opened 8 years ago

skn123 commented 8 years ago

OS : Ubuntu 16.04 LTS Boost 1.62 AMD Radeon 370..but check the log

Use Mesa OpenCL drivers

naths@naths-System-Product-Name:~/binaries/vexcl/examples$ ./devlist
OpenCL devices:

  AMD PITCAIRN (DRM 2.43.0 / 4.4.0-38-generic, LLVM 4.0.0)
    CL_PLATFORM_NAME                 = Clover
    CL_DEVICE_TYPE                   = 4
    CL_DEVICE_VENDOR                 = AMD
    CL_DEVICE_VERSION                = OpenCL 1.1 Mesa 12.1.0-devel - padoka PPA
    CL_DEVICE_MAX_COMPUTE_UNITS      = 20
    CL_DEVICE_HOST_UNIFIED_MEMORY    = 1
    CL_DEVICE_GLOBAL_MEM_SIZE        = 2147483648
    CL_DEVICE_LOCAL_MEM_SIZE         = 32768
    CL_DEVICE_MAX_MEM_ALLOC_SIZE     = 2147483648
    CL_DEVICE_ADDRESS_BITS           = 64
    CL_DEVICE_MAX_CLOCK_FREQUENCY    = 1070
    CL_DEVICE_EXTENSIONS             = cl_khr_byte_addressable_store 
        cl_khr_fp64 cl_khr_global_int32_base_atomics 
        cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics 
        cl_khr_local_int32_extended_atomics 

naths@naths-System-Product-Name:~/binaries/vexcl/examples$ ./benchmark 
----------------------------------------------------------
Profiling "double" performance
----------------------------------------------------------
1. AMD PITCAIRN (DRM 2.43.0 / 4.4.0-38-generic, LLVM 4.0.0) (Clover)
``
#if defined(cl_khr_fp64)
#  pragma OPENCL EXTENSION cl_khr_fp64: enable
#elif defined(cl_amd_fp64)
#  pragma OPENCL EXTENSION cl_amd_fp64: enable
#endif

kernel void vexcl_vector_kernel
(
  ulong n,
  global double * prm_tag_1_1,
  double prm_2,
  global double * prm_4
)
{
  for(ulong idx = get_global_id(0); idx < n; idx += get_global_size(0))
  {
    prm_tag_1_1[idx] = ( ( prm_2 * prm_tag_1_1[idx] ) + prm_4[idx] );
  }
}
``
<unknown>:0:0: in function vexcl_vector_kernel void (i64, double addrspace(1)*, double, double addrspace(1)*): unsupported call to function get_global_id

./benchmark(_ZN3vex6detail15print_backtraceEv+0x2d) [0x457edd]
./benchmark(_ZN3vex7backend6opencl13build_sourcesERKN2cl12CommandQueueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_+0x14f8) [0x473a08]
./benchmark() [0x44dff4]
./benchmark(_ZN3vex6detail17assign_expressionINS_6assign3SETEKNS_15tagged_terminalILm1ERKNS_6vectorIdEEEENS_17vector_expressionIN5boost5proto7exprns_10basic_exprINSD_6tagns_3tag4plusENSD_7argsns_5list2INSB_INSF_INSH_10multipliesENSK_INSB_INSF_INSH_8terminalENSJ_4termIdEELl0EEEEES9_EELl2EEEEERS6_EELl2EEEEEEEvRT0_RKT1_RKSt6vectorIN2cl12CommandQueueESaIS15_EERKS13_ImSaImEE+0xecc) [0x4dd35c]
./benchmark(_ZN3vex6detail17assign_expressionINS_6assign3SETEKNS_15tagged_terminalILm1ERKNS_6vectorIdEEEENS_17vector_expressionIN5boost5proto7exprns_10basic_exprINSD_6tagns_3tag4plusENSD_7argsns_5list2INSB_INSF_INSH_10multipliesENSK_INSB_INSF_INSH_8terminalENSJ_4termIdEELl0EEEEES9_EELl2EEEEERS6_EELl2EEEEEEEvRT0_RKT1_+0x6c) [0x4ddd9c]
./benchmark(_Z15benchmark_saxpyIdESt4pairIddERKN3vex7ContextERNS2_8profilerINSt6chrono3_V212system_clockEEE+0x210) [0x4f39d0]
./benchmark(_Z9run_testsIdEvRKN3vex7ContextERNS0_8profilerINSt6chrono3_V212system_clockEEE+0x8ae) [0x4f831e]
./benchmark(main+0x704) [0x44a304]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f2a9c510830]
./benchmark(_start+0x29) [0x44ac19]

clBuildProgram(-11: Build program failure)
ddemidov commented 8 years ago

This line looks very suspicious for me:

<unknown>:0:0: in function vexcl_vector_kernel void (i64, double addrspace(1)*, double, double addrspace(1)*): unsupported call to function get_global_id

Are you able to compile and run any OpenCL program on this platform? Here is a link to a minimal example using raw C++ API: https://gist.github.com/ddemidov/2925717.