I am discovering OpenCL through PyOpenCL, but I am confortable in doing some low level language programming (C, Rust).
In my kernel, I want to compare a result with existing data in a set (hash set or tree set) before processing it further, instead of having to browse a whole array. I would like to avoid doing that in the host code to avoid too many round trips between the host and the device.
I do not want to change the content of the set, so no risk of concurrent access by the work items.
I have trouble finding some kind of "STL" library for OpenCL, or some open source implementation for Set and Hash data structure.
Do I miss something, is there something like that? Am I supposed to implement a Set data structure myself?
Or is using Hash or Set data structure in an OpenCL kernel the sign I am doing things that are not compatible with OpenCL goals?