fff-rs / coaster

Extendable HPC-Framework for CUDA, OpenCL and common CPU
https://spearow.io/projects/coaster
Other
85 stars 7 forks source link

OpenCL memory allocation fails at least in test #14

Open drahnr opened 6 years ago

drahnr commented 6 years ago

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 commented 6 years ago

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

drahnr commented 6 years ago

It works because it is missing the assert! statement.

drahnr commented 6 years ago

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

drahnr commented 6 years ago

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 commented 6 years ago

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

Result:


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.