Replies: 3 comments 2 replies
-
My understanding is that these functions are intended to give a hint about shared memory vs. L1 cache usage of the kernels. This is useful on modern CUDA GPUs as they have L1 cache and shared memory in shared dynamically adjusted resources. Sadly the CUDA backend does not currently support setting such preferences. I have an old patch which adds these hints at a context level, but I never got around to making a PR for it and it might have rotted slightly now. However, what you're asking about is more granular. One solution would be to have CUDA-backend specific properties for these to be used when online compiling the kernels in a To my knowledge |
Beta Was this translation helpful? Give feedback.
-
If these cache configuration options are related to the way the kernel is submitted (as opposed to affecting the way the kernel is compiled), then we might be able to express these as properties passed to the |
Beta Was this translation helpful? Give feedback.
-
Thank you for your answers and links! |
Beta Was this translation helpful? Give feedback.
-
Quite a few cuda code show the functions (https://userweb.cs.txstate.edu/~burtscher/research/ECL-BH/)
cudaFuncSetCacheConfig(BoundingBoxKernel, cudaFuncCachePreferShared);
cudaFuncSetCacheConfig(TreeBuildingKernel, cudaFuncCachePreferL1);
cudaFuncSetCacheConfig(ClearKernel1, cudaFuncCachePreferL1);
cudaFuncSetCacheConfig(ClearKernel2, cudaFuncCachePreferL1);
cudaFuncSetCacheConfig(SummarizationKernel, cudaFuncCachePreferShared);
cudaFuncSetCacheConfig(SortKernel, cudaFuncCachePreferL1);
cudaFuncSetCacheConfig(ForceCalculationKernel, cudaFuncCachePreferEqual);
cudaFuncSetCacheConfig(IntegrationKernel, cudaFuncCachePreferL1);
I am not familiar with these functions; do they have equivalents in SYCL ? Thanks.
Beta Was this translation helpful? Give feedback.
All reactions