diff --git a/sycl/include/sycl/detail/pi.h b/sycl/include/sycl/detail/pi.h index 6e7c5bfbf166..bf4d0eef88a7 100644 --- a/sycl/include/sycl/detail/pi.h +++ b/sycl/include/sycl/detail/pi.h @@ -2758,7 +2758,7 @@ __SYCL_EXPORT pi_result piextMemMipmapFree(pi_context context, pi_device device, /// \param ret_handle is the returning memory handle to newly allocated memory __SYCL_EXPORT pi_result piextMemUnsampledImageCreate( pi_context context, pi_device device, pi_image_mem_handle img_mem, - pi_image_format *image_format, pi_image_desc *image_desc, pi_mem *ret_mem, + pi_image_format *image_format, pi_image_desc *image_desc, pi_image_handle *ret_handle); /// API to create sampled bindless image handles. @@ -2774,7 +2774,7 @@ __SYCL_EXPORT pi_result piextMemUnsampledImageCreate( __SYCL_EXPORT pi_result piextMemSampledImageCreate( pi_context context, pi_device device, pi_image_mem_handle img_mem, pi_image_format *image_format, pi_image_desc *image_desc, - pi_sampler sampler, pi_mem *ret_mem, pi_image_handle *ret_handle); + pi_sampler sampler, pi_image_handle *ret_handle); /// API to create samplers for bindless images. /// diff --git a/sycl/plugins/cuda/pi_cuda.cpp b/sycl/plugins/cuda/pi_cuda.cpp index 8bf4eea26620..4a16cd3f2937 100644 --- a/sycl/plugins/cuda/pi_cuda.cpp +++ b/sycl/plugins/cuda/pi_cuda.cpp @@ -382,19 +382,18 @@ __SYCL_EXPORT pi_result piextMemImageAllocate(pi_context Context, __SYCL_EXPORT pi_result piextMemUnsampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, - pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, + pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_handle *RetHandle) { - return pi2ur::piextMemUnsampledImageCreate( - Context, Device, ImgMem, ImageFormat, ImageDesc, RetMem, RetHandle); + return pi2ur::piextMemUnsampledImageCreate(Context, Device, ImgMem, + ImageFormat, ImageDesc, RetHandle); } __SYCL_EXPORT pi_result piextMemSampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, - pi_mem *RetMem, pi_image_handle *RetHandle) { + pi_image_handle *RetHandle) { return pi2ur::piextMemSampledImageCreate(Context, Device, ImgMem, ImageFormat, - ImageDesc, Sampler, RetMem, - RetHandle); + ImageDesc, Sampler, RetHandle); } __SYCL_EXPORT pi_result piextBindlessImageSamplerCreate( diff --git a/sycl/plugins/hip/pi_hip.cpp b/sycl/plugins/hip/pi_hip.cpp index 609750a4892b..18fc7c3e1c92 100644 --- a/sycl/plugins/hip/pi_hip.cpp +++ b/sycl/plugins/hip/pi_hip.cpp @@ -385,19 +385,18 @@ __SYCL_EXPORT pi_result piextMemImageAllocate(pi_context Context, __SYCL_EXPORT pi_result piextMemUnsampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, - pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, + pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_handle *RetHandle) { - return pi2ur::piextMemUnsampledImageCreate( - Context, Device, ImgMem, ImageFormat, ImageDesc, RetMem, RetHandle); + return pi2ur::piextMemUnsampledImageCreate(Context, Device, ImgMem, + ImageFormat, ImageDesc, RetHandle); } __SYCL_EXPORT pi_result piextMemSampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, - pi_mem *RetMem, pi_image_handle *RetHandle) { + pi_image_handle *RetHandle) { return pi2ur::piextMemSampledImageCreate(Context, Device, ImgMem, ImageFormat, - ImageDesc, Sampler, RetMem, - RetHandle); + ImageDesc, Sampler, RetHandle); } __SYCL_EXPORT pi_result piextBindlessImageSamplerCreate( diff --git a/sycl/plugins/level_zero/pi_level_zero.cpp b/sycl/plugins/level_zero/pi_level_zero.cpp index 8e6224ba5794..9c8dab167d29 100644 --- a/sycl/plugins/level_zero/pi_level_zero.cpp +++ b/sycl/plugins/level_zero/pi_level_zero.cpp @@ -394,19 +394,18 @@ __SYCL_EXPORT pi_result piextMemImageAllocate(pi_context Context, __SYCL_EXPORT pi_result piextMemUnsampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, - pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, + pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_handle *RetHandle) { - return pi2ur::piextMemUnsampledImageCreate( - Context, Device, ImgMem, ImageFormat, ImageDesc, RetMem, RetHandle); + return pi2ur::piextMemUnsampledImageCreate(Context, Device, ImgMem, + ImageFormat, ImageDesc, RetHandle); } __SYCL_EXPORT pi_result piextMemSampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, - pi_mem *RetMem, pi_image_handle *RetHandle) { + pi_image_handle *RetHandle) { return pi2ur::piextMemSampledImageCreate(Context, Device, ImgMem, ImageFormat, - ImageDesc, Sampler, RetMem, - RetHandle); + ImageDesc, Sampler, RetHandle); } __SYCL_EXPORT pi_result piextBindlessImageSamplerCreate( diff --git a/sycl/plugins/native_cpu/pi_native_cpu.cpp b/sycl/plugins/native_cpu/pi_native_cpu.cpp index 35f17a5316ba..346c73abc3e1 100644 --- a/sycl/plugins/native_cpu/pi_native_cpu.cpp +++ b/sycl/plugins/native_cpu/pi_native_cpu.cpp @@ -389,19 +389,18 @@ __SYCL_EXPORT pi_result piextMemImageAllocate(pi_context Context, __SYCL_EXPORT pi_result piextMemUnsampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, - pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, + pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_handle *RetHandle) { - return pi2ur::piextMemUnsampledImageCreate( - Context, Device, ImgMem, ImageFormat, ImageDesc, RetMem, RetHandle); + return pi2ur::piextMemUnsampledImageCreate(Context, Device, ImgMem, + ImageFormat, ImageDesc, RetHandle); } __SYCL_EXPORT pi_result piextMemSampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, - pi_mem *RetMem, pi_image_handle *RetHandle) { + pi_image_handle *RetHandle) { return pi2ur::piextMemSampledImageCreate(Context, Device, ImgMem, ImageFormat, - ImageDesc, Sampler, RetMem, - RetHandle); + ImageDesc, Sampler, RetHandle); } __SYCL_EXPORT pi_result piextBindlessImageSamplerCreate( diff --git a/sycl/plugins/opencl/pi_opencl.cpp b/sycl/plugins/opencl/pi_opencl.cpp index 9441e2980402..957b1607ed08 100644 --- a/sycl/plugins/opencl/pi_opencl.cpp +++ b/sycl/plugins/opencl/pi_opencl.cpp @@ -363,21 +363,20 @@ pi_result piextMemImageAllocate(pi_context Context, pi_device Device, pi_result piextMemUnsampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, - pi_image_desc *ImageDesc, pi_mem *RetMem, + pi_image_desc *ImageDesc, pi_image_handle *RetHandle) { - return pi2ur::piextMemUnsampledImageCreate( - Context, Device, ImgMem, ImageFormat, ImageDesc, RetMem, RetHandle); + return pi2ur::piextMemUnsampledImageCreate(Context, Device, ImgMem, + ImageFormat, ImageDesc, RetHandle); } pi_result piextMemSampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, - pi_sampler Sampler, pi_mem *RetMem, + pi_sampler Sampler, pi_image_handle *RetHandle) { return pi2ur::piextMemSampledImageCreate(Context, Device, ImgMem, ImageFormat, - ImageDesc, Sampler, RetMem, - RetHandle); + ImageDesc, Sampler, RetHandle); } pi_result piextBindlessImageSamplerCreate( diff --git a/sycl/plugins/unified_runtime/CMakeLists.txt b/sycl/plugins/unified_runtime/CMakeLists.txt index 94674836206e..69850a5af9be 100644 --- a/sycl/plugins/unified_runtime/CMakeLists.txt +++ b/sycl/plugins/unified_runtime/CMakeLists.txt @@ -94,14 +94,14 @@ if(SYCL_PI_UR_USE_FETCH_CONTENT) CACHE PATH "Path to external '${name}' adapter source dir" FORCE) endfunction() - set(UNIFIED_RUNTIME_REPO "https://github.com/oneapi-src/unified-runtime.git") - # commit e00a764f8dafd1319b636aa99c15601ec0d4d7fc - # Merge: 85b75590 92b60b77 - # Author: aarongreig - # Date: Wed Apr 10 10:21:22 2024 +0100 - # Merge pull request #1455 from GeorgeWeb/georgi/fix-hip-usm-copy2d - # [HIP] Fix memory type detection in allocation info queries and USM copy2D - set(UNIFIED_RUNTIME_TAG e00a764f8dafd1319b636aa99c15601ec0d4d7fc) + set(UNIFIED_RUNTIME_REPO "https://github.com/DBDuncan/unified-runtime.git") + # commit c25f2f91c5abfe3c59600c1a6bc153acad790c66 + # Author: Duncan Brawley + # Date: Thu, 21 Mar 2024 16:35:42 +0000 + # [Bindless][Exp] Remove phMem argument from bindless image creation functions + # Remove phMem argument from bindless image creation functions. + # It not used outside of UR and is currently causing a minor memory leak. + set(UNIFIED_RUNTIME_TAG c25f2f91c5abfe3c59600c1a6bc153acad790c66) fetch_adapter_source(level_zero ${UNIFIED_RUNTIME_REPO} @@ -110,46 +110,22 @@ if(SYCL_PI_UR_USE_FETCH_CONTENT) fetch_adapter_source(opencl ${UNIFIED_RUNTIME_REPO} - # commit 0d2a972c71ba4dd5935478c7b7124a372a1eeca0 - # Merge: ac89abfe 44aef877 - # Author: Kenneth Benzie (Benie) - # Date: Thu Apr 11 10:24:19 2024 +0100 - # Merge pull request #1440 from fabiomestre/fabio/opencl_remove_queued_hack - # [OPENCL] Remove EVENT_STATUS_QUEUED workaround - 0d2a972c71ba4dd5935478c7b7124a372a1eeca0 + ${UNIFIED_RUNTIME_TAG} ) fetch_adapter_source(cuda ${UNIFIED_RUNTIME_REPO} - # commit 6e76c98a1f5cd3c4f5e99011e92bd55b3a46cc4c - # Merge: 08b3e8fe 834e6435 - # Author: Kenneth Benzie (Benie) - # Date: Wed Apr 10 16:26:17 2024 +0100 - # Merge pull request #1220 from fabiomestre/fabio/cuda_multimap - # [CUDA] Add support for multiple active mappings - 6e76c98a1f5cd3c4f5e99011e92bd55b3a46cc4c + ${UNIFIED_RUNTIME_TAG} ) fetch_adapter_source(hip ${UNIFIED_RUNTIME_REPO} - # commit 08b3e8fe6c5ad0aed125823c335eb44343845f6c - # Merge: 758c6149 db47fc0a - # Author: Kenneth Benzie (Benie) - # Date: Wed Apr 10 16:22:00 2024 +0100 - # Merge pull request #1359 from lplewa/hip_log - # Refactor hip adapter to new logger - 08b3e8fe6c5ad0aed125823c335eb44343845f6c + ${UNIFIED_RUNTIME_TAG} ) fetch_adapter_source(native_cpu ${UNIFIED_RUNTIME_REPO} - # commit 38e9478b8a7a01fcf37f55b50c735ca1de29c76d - # Merge: b582fb80 c594cdc0 - # Author: Kenneth Benzie (Benie) - # Date: Thu Apr 11 11:39:02 2024 +0100 - # Merge pull request #1478 from PietroGhg/pietro/vecz_threadpool - # [NATIVECPU] Initial threadpool implementation for Native CPU - 38e9478b8a7a01fcf37f55b50c735ca1de29c76d + ${UNIFIED_RUNTIME_TAG} ) if(SYCL_PI_UR_OVERRIDE_FETCH_CONTENT_REPO) diff --git a/sycl/plugins/unified_runtime/pi2ur.hpp b/sycl/plugins/unified_runtime/pi2ur.hpp index b08b4f589375..91f6961dcefd 100644 --- a/sycl/plugins/unified_runtime/pi2ur.hpp +++ b/sycl/plugins/unified_runtime/pi2ur.hpp @@ -4988,13 +4988,14 @@ inline pi_result piextMemImageAllocate(pi_context Context, pi_device Device, return PI_SUCCESS; } -inline pi_result piextMemUnsampledImageCreate( - pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, - pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, - pi_image_handle *RetHandle) { +inline pi_result piextMemUnsampledImageCreate(pi_context Context, + pi_device Device, + pi_image_mem_handle ImgMem, + pi_image_format *ImageFormat, + pi_image_desc *ImageDesc, + pi_image_handle *RetHandle) { PI_ASSERT(Context, PI_ERROR_INVALID_CONTEXT); PI_ASSERT(Device, PI_ERROR_INVALID_DEVICE); - PI_ASSERT(RetMem, PI_ERROR_INVALID_MEM_OBJECT); auto UrContext = reinterpret_cast(Context); auto UrDevice = reinterpret_cast(Device); @@ -5004,13 +5005,11 @@ inline pi_result piextMemUnsampledImageCreate( ur_image_desc_t UrDesc{}; pi2urImageDesc(ImageFormat, ImageDesc, &UrFormat, &UrDesc); - ur_mem_handle_t *UrRetMem = reinterpret_cast(RetMem); ur_exp_image_handle_t *UrRetHandle = reinterpret_cast(RetHandle); HANDLE_ERRORS(urBindlessImagesUnsampledImageCreateExp( - UrContext, UrDevice, UrImgMem, &UrFormat, &UrDesc, UrRetMem, - UrRetHandle)); + UrContext, UrDevice, UrImgMem, &UrFormat, &UrDesc, UrRetHandle)); return PI_SUCCESS; } @@ -5018,10 +5017,9 @@ inline pi_result piextMemUnsampledImageCreate( inline pi_result piextMemSampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, - pi_mem *RetMem, pi_image_handle *RetHandle) { + pi_image_handle *RetHandle) { PI_ASSERT(Context, PI_ERROR_INVALID_CONTEXT); PI_ASSERT(Device, PI_ERROR_INVALID_DEVICE); - PI_ASSERT(RetMem, PI_ERROR_INVALID_MEM_OBJECT); PI_ASSERT(Sampler, PI_ERROR_INVALID_SAMPLER); auto UrContext = reinterpret_cast(Context); @@ -5033,12 +5031,11 @@ inline pi_result piextMemSampledImageCreate( pi2urImageDesc(ImageFormat, ImageDesc, &UrFormat, &UrDesc); auto UrSampler = reinterpret_cast(Sampler); - ur_mem_handle_t *UrRetMem = reinterpret_cast(RetMem); ur_exp_image_handle_t *UrRetHandle = reinterpret_cast(RetHandle); HANDLE_ERRORS(urBindlessImagesSampledImageCreateExp( - UrContext, UrDevice, UrImgMem, &UrFormat, &UrDesc, UrSampler, UrRetMem, + UrContext, UrDevice, UrImgMem, &UrFormat, &UrDesc, UrSampler, UrRetHandle)); return PI_SUCCESS; diff --git a/sycl/plugins/unified_runtime/pi_unified_runtime.cpp b/sycl/plugins/unified_runtime/pi_unified_runtime.cpp index 0f42f21d3909..905ace2f88a9 100644 --- a/sycl/plugins/unified_runtime/pi_unified_runtime.cpp +++ b/sycl/plugins/unified_runtime/pi_unified_runtime.cpp @@ -1226,19 +1226,18 @@ __SYCL_EXPORT pi_result piextMemImageAllocate(pi_context Context, __SYCL_EXPORT pi_result piextMemUnsampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, - pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, + pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_handle *RetHandle) { - return pi2ur::piextMemUnsampledImageCreate( - Context, Device, ImgMem, ImageFormat, ImageDesc, RetMem, RetHandle); + return pi2ur::piextMemUnsampledImageCreate(Context, Device, ImgMem, + ImageFormat, ImageDesc, RetHandle); } __SYCL_EXPORT pi_result piextMemSampledImageCreate( pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, - pi_mem *RetMem, pi_image_handle *RetHandle) { + pi_image_handle *RetHandle) { return pi2ur::piextMemSampledImageCreate(Context, Device, ImgMem, ImageFormat, - ImageDesc, Sampler, RetMem, - RetHandle); + ImageDesc, Sampler, RetHandle); } __SYCL_EXPORT pi_result piextBindlessImageSamplerCreate( diff --git a/sycl/source/detail/bindless_images.cpp b/sycl/source/detail/bindless_images.cpp index 9971712f0cfd..174fe087ede4 100644 --- a/sycl/source/detail/bindless_images.cpp +++ b/sycl/source/detail/bindless_images.cpp @@ -361,11 +361,9 @@ create_image(image_mem_handle memHandle, const image_descriptor &desc, // Call impl. pi_image_handle piImageHandle; - pi_mem piImage; Plugin->call( - C, Device, memHandle.raw_handle, &piFormat, &piDesc, &piImage, - &piImageHandle); + C, Device, memHandle.raw_handle, &piFormat, &piDesc, &piImageHandle); return unsampled_image_handle{piImageHandle}; } @@ -449,12 +447,10 @@ create_image(void *devPtr, size_t pitch, const bindless_image_sampler &sampler, populate_pi_structs(desc, piDesc, piFormat, pitch); // Call impl. - pi_mem piImage; pi_image_handle piImageHandle; Plugin->call( - C, Device, devPtr, &piFormat, &piDesc, piSampler, &piImage, - &piImageHandle); + C, Device, devPtr, &piFormat, &piDesc, piSampler, &piImageHandle); return sampled_image_handle{piImageHandle}; } diff --git a/sycl/unittests/helpers/PiMockPlugin.hpp b/sycl/unittests/helpers/PiMockPlugin.hpp index a0f267bd97d5..46fad80130b0 100644 --- a/sycl/unittests/helpers/PiMockPlugin.hpp +++ b/sycl/unittests/helpers/PiMockPlugin.hpp @@ -482,7 +482,7 @@ inline pi_result mock_piextMemMipmapFree(pi_context context, pi_device device, inline pi_result mock_piextMemUnsampledImageCreate( pi_context context, pi_device device, pi_image_mem_handle img_mem, - pi_image_format *image_format, pi_image_desc *desc, pi_mem *ret_mem, + pi_image_format *image_format, pi_image_desc *desc, pi_image_handle *ret_handle) { return PI_SUCCESS; } @@ -552,7 +552,7 @@ inline pi_result mock_piextMemSampledImageCreateInterop( inline pi_result mock_piextMemSampledImageCreate( pi_context context, pi_device device, pi_image_mem_handle img_mem, pi_image_format *image_format, pi_image_desc *desc, pi_sampler sampler, - pi_mem *ret_mem, pi_image_handle *ret_handle) { + pi_image_handle *ret_handle) { return PI_SUCCESS; }