@@ -4709,9 +4709,30 @@ pi_result cuda_piextUSMEnqueueMemAdvise(pi_queue queue, const void *ptr,
4709
4709
event_ptr->start ();
4710
4710
}
4711
4711
4712
- result = PI_CHECK_ERROR (
4713
- cuMemAdvise ((CUdeviceptr)ptr, length, (CUmem_advise)advice,
4714
- queue->get_context ()->get_device ()->get ()));
4712
+ switch (advice){
4713
+ case PI_MEM_ADVISE_CUDA_SET_READ_MOSTLY:
4714
+ case PI_MEM_ADVISE_CUDA_UNSET_READ_MOSTLY:
4715
+ case PI_MEM_ADVISE_CUDA_SET_PREFERRED_LOCATION:
4716
+ case PI_MEM_ADVISE_CUDA_UNSET_PREFERRED_LOCATION:
4717
+ case PI_MEM_ADVISE_CUDA_SET_ACCESSED_BY:
4718
+ case PI_MEM_ADVISE_CUDA_UNSET_ACCESSED_BY:
4719
+ result = PI_CHECK_ERROR (
4720
+ cuMemAdvise ((CUdeviceptr)ptr, length, (CUmem_advise)advice,
4721
+ queue->get_context ()->get_device ()->get ()));
4722
+ break ;
4723
+ case PI_MEM_ADVISE_CUDA_SET_PREFERRED_LOCATION_HOST:
4724
+ case PI_MEM_ADVISE_CUDA_UNSET_PREFERRED_LOCATION_HOST:
4725
+ case PI_MEM_ADVISE_CUDA_SET_ACCESSED_BY_HOST:
4726
+ case PI_MEM_ADVISE_CUDA_UNSET_ACCESSED_BY_HOST:
4727
+ result = PI_CHECK_ERROR (
4728
+ cuMemAdvise ((CUdeviceptr)ptr, length, (CUmem_advise)(advice -
4729
+ (PI_MEM_ADVISE_CUDA_SET_PREFERRED_LOCATION_HOST -
4730
+ PI_MEM_ADVISE_CUDA_SET_PREFERRED_LOCATION)),
4731
+ -1 ));
4732
+ break ;
4733
+ default :
4734
+ cl::sycl::detail::pi::die (" Unknown advice" );
4735
+ }
4715
4736
if (event) {
4716
4737
result = event_ptr->record ();
4717
4738
*event = event_ptr.release ();
0 commit comments