Comments (7)
Turns out this is already added to the spec, but does not appear in the generated header since it's not supported by level-zero
https://github.com/oneapi-src/unified-runtime/blob/main/scripts/core/enqueue.yml#L675
from unified-runtime.
We should discuss why there are disabled entry points with the WG.
from unified-runtime.
Along with urEnqueueMemImageFill
, urEnqueueMemImageMap
is also currently disabled.
from unified-runtime.
piEnqueueMemImageFill
is only implemented in theOpenCL
pluginpiEnqueueMemImageMap
does not exist it PI.
I suppose we do not need to add these entry-points
from unified-runtime.
If these are necessary to implement SYCL 2020, they should be added to the UR spec.
from unified-runtime.
Based on discussion with @AerialMantis it does not appear that these commands are required for SYCL 2020 because it is only possible to read()
and write()
images via the unsampled and sampled image accessors.
Resolution of this issue, should be to remove the currently disabled urMemImageFill
entry point from the yaml file.
from unified-runtime.
These entry points are still in the spec files. I would have already opened the PR to get them deleted but strangely MemImageFill does appear to get used in the sycl runtime: https://github.com/intel/llvm/blob/sycl/sycl/source/detail/memory_manager.cpp#L851 and not just in a sort of stubbed out helper function or whatever.
I think what's happening here is that SYCL has this fill
function that takes an accessor
, which is a potentially multi-dimensional array view type object that sits on top of an allocation. You can see there's a little bit of extra code where I linked in the "not image" branch that deals with it possibly being a > 1D operation for buffers. It looks like in the "yes image" branch they're taking advantage of the fact that there's this magic API for images that deals with that nonsense for them, it seems more like a use out of convenience than out of necessity.
Technically I think we could implement ImageFill for all the adapters that support images, but for everything that isn't opencl it would basically be a regular fill with the additional faff of keeping track of which mem_obj belongs to which image and figuring out what our pixel size and strides etc are. All that seems kind of pointless when that one use that I linked has that info on hand and leaves it out when it calls the ImageFill entry point instead of the BufferFill one.
Anyway we should probably bring this up to sycl maintainer people because if we delete ImageFill now we should also figure out how we can delete it from PI and memory_manager so it doesn't come back to bite us later when it's time to port.
from unified-runtime.
Related Issues (20)
- Potential better handling of python dependencies during configuration
- Automatically detect targets for CTS device binaries.
- Consider adding UR_PLATFORM_INFO_ADAPTER to ur_platform_info_t HOT 1
- Error handling for unsupported adapter features
- [NATIVE_CPU] Cannot build UR with native cpu support HOT 4
- Visual Studio OpenCL adapter build error
- Consider to add a new error code for `urVirtualMemMap` when the VA is already mapped HOT 6
- Add tests for the Sanitizer Layer HOT 2
- Inconsistent behavior between UR_DEVICE_INFO_UUID vs UR_DEVICE_INFO_PCI_ADDRESS HOT 11
- [CUDA] Print a warning when loading the CUPTI library fails
- [CUDA] Improve the loading process of the CUPTI library when tracing HOT 1
- Ensure in CTS getInfo tests that Object creation handles is the same as queried
- Improve compiler interface testing
- [NATIVE_CPU] UR compilation error with native cpu support HOT 4
- Request to add a new UR API to retrieve global variable pointer from Module HOT 2
- Add validation layer support to detect if maps from urEnqueueMemBufferMap are overlapping
- [CUDA] Segmentation fault in CTS enqueue tests HOT 1
- [HIP] Couldn't find the HSA include directory HOT 1
- Info queries for interop objects fail silently HOT 2
- Add Build and CTS workflows for missing adapters on Windows
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unified-runtime.