coaster icon indicating copy to clipboard operation
coaster copied to clipboard

OpenCL memory allocation fails at least in test

Open drahnr opened this issue 6 years ago • 5 comments

https://ci.spearow.io/teams/spearow/pipelines/juice/jobs/test-coaster/builds/69

# RUST_BACKTRACE=1 cargo t --verbose -- --nocapture backend_spec::opencl
       Fresh rustc-serialize v0.3.24
       Fresh num-traits v0.1.40
       Fresh libc v0.2.31
       Fresh lazy_static v0.1.16
       Fresh bitflags v0.3.3
       Fresh utf8-ranges v1.0.0
       Fresh byteorder v0.4.2
       Fresh regex-syntax v0.4.1
       Fresh lazy_static v0.2.8
       Fresh void v1.0.2
       Fresh enum_primitive v0.1.1
       Fresh num-integer v0.1.35
       Fresh num-complex v0.1.40
       Fresh rand v0.3.16
       Fresh memchr v1.0.1
       Fresh unreachable v1.0.0
       Fresh num-iter v0.1.34
       Fresh num-bigint v0.1.40
       Fresh aho-corasick v0.6.3
       Fresh thread_local v0.3.4
       Fresh num-rational v0.1.39
       Fresh regex v0.2.2
       Fresh num v0.1.40
       Fresh coaster v0.1.0 (file:///tmp/build/74b91f0c/coaster)
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `/tmp/build/74b91f0c/coaster/target/debug/deps/coaster-4378b988abc30558 --nocapture 'backend_spec::opencl'`

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running `/tmp/build/74b91f0c/coaster/target/debug/deps/backend_specs-d18603f981e40185 --nocapture 'backend_spec::opencl'`

running 2 tests
error: process didn't exit successfully: `/tmp/build/74b91f0c/coaster/target/debug/deps/backend_specs-d18603f981e40185 --nocapture backend_spec::opencl` (signal: 11, SIGSEGV: invalid memory reference)

drahnr avatar Sep 28 '17 06:09 drahnr

Backend::<OpenCL>::default() fails and thus it_can_create_default_backend fails. it_can_manually_create_default_backend works.

drahnr avatar Sep 28 '17 19:09 drahnr

It works because it is missing the assert! statement.

drahnr avatar Sep 28 '17 20:09 drahnr

Err(Framework(OpenCL(InvalidDevice("devices contains an invalid device.")))) is the core issue, OpenCL return code -33.

drahnr avatar Sep 28 '17 20:09 drahnr

It seems that at least intel beignet opencl implementation can not handle multiple devices from different platforms all at once. using just the first works fine. Removing pocl for possible interference.

drahnr avatar Sep 28 '17 21:09 drahnr

There is also amdgpu-pro opencl missing in the containers...

Result:

  • without pocl things work again, but...
  • there is only one cl_platform left, which
  • requires AMDGPU-PRO to install the OpenCL part on root and in the container to verify if this is a red hering or not

clContextCreate does not state any constraints regarding the list of devices allowed to be passed.


Actually POCL is the CPU implementation, so that should be fine.

drahnr avatar Sep 28 '17 22:09 drahnr