Closed ankane closed 2 years ago
Hi Andrew, thanks for reposting this issue.
This issue seems to be related with ArrayFire, as it is the abstraction layer we use to decouple our implementation from vendor APIs as CUDA or OpenCL. As far as I know, Intel GPUs do not support f64 data, that maybe be the reason for that seg-fault. However, it should not be breaking the execution and produce a controlled error message. If I can reproduce the issue I will work solve this. Just one question, is it breaking during the Array creation or during the method execution? Regarding the s32 data type, this method has not been tested against that data type. Could you provide some more info about the error you are getting?.
So, I would suggest you cast your data to f32 before calling this method. In the meanwhile, we will try to reproduce this issue.
Thanks in advance.
Great, thanks. Both the error and segfault occur in stomp_self_join
(array creation works). The output for the error is above, but it doesn't seem super helpful (Internal error
in opencl::buildProgram
).
Andrew, could you try using with the following function instead?: https://github.com/shapelets/khiva-python/blob/891622ce7384605a825b32c2ae70a36872762678/khiva/matrix.py#L268
With matrix_profile_self_join
, it errors with f32 and s32 (same error for both):
File "/usr/local/lib/python3.9/site-packages/khiva/matrix.py", line 294, in matrix_profile_self_join
raise Exception(str(error_message.value.decode()))
Exception: matrix_profile_self_join: ArrayFire Exception (Double precision not supported for this device:401):
In function void opencl::(anonymous namespace)::verifyTypeSupport()
In file src/backend/opencl/Array.cpp:59
Double precision not supported
0# void opencl:
And segfaults with f64.
I was expecting something like that, I will work on a fix for this issue next week. Thanks for the feedback, Andrew.
Sounds good, thanks @avilchess.
Cleaning up stale issues
Describe the bug
Hi, I'm seeing a segfault and error on Mac with OpenCL and different array data types.
To Reproduce
It's easiest to reproduce with the Python library (but think it's probably related to the C++ code).
Expected behavior
No segfault or error, like with the CPU backend.
Environment information:
Here's the output of
get_backend_info()
:Additional context
Let me know if there's any I can do to help debug.