Comments (12)
Regarding Level Zero, it makes sense to have the spec separate from the implementation since there can be multiple implementations of Level Zero across devices. The loader and headers were separate in an effort to allow the spec to move forward freely while loaders/headers can be snapped at certain key milestones.
I don't know that we have these issues with Unified Runtime. If not then I would vote for option c which is to delete https://github.com/oneapi-src/unified-runtime-spec and not rename this repo.
from unified-runtime.
Sure, this sounds very reasonable to me! Since this is beyond the scope of this ticket (which is now to close the delete the spec repo) I've created #76 to actually do the restructuring, so maybe we should continue the discussion on a directory layout there?
from unified-runtime.
In the case of level zero, the level-zero repo contains the loader and a copy of the headers, whereas the level-zero-spec repo contains the YAML spec, scripts, and pre-generated content.
So let's be consistent and go with either option a or b. The latter is probably the least work.
While we are discussing repo structure, should we have an additional unified-runtime-adapters
repo to move all the implementations and the shared code to?
from unified-runtime.
I'm wondering if we need to have separate repos? We've already discussed adding testing to this repo and the less dependencies a Unified Runtime user needs to pull in to make use of the project, the easier it'll be. I'm not particularly tied to this, but it might be worth considering putting the loaders, adapters, testing, spec/headers and utilities all in the same place for ease of use?
If we did want to look at deleting or renaming any repos I think we would need additional permissions to what we currently have.
from unified-runtime.
That also seems like a reasonable solution. It would simplify syncing between the spec and the loader. But we'd have to rethink the structure of the repo.
from unified-runtime.
True, but I don't think restructuring would be too disruptive at this early stage, especially if we improve the build system of this project to expose dependencies to downstream users in a more firewalled fashion, we should then have more flexibility to move things around.
Currently all the PI adapters live in the intel LLVM fork within the SYCL subdirectory, which is where PI is defined, so I guess it would be analogues to adding them here?
from unified-runtime.
@FranklandJack I think we can follow the repo structure similar to level-zero, where implementations live in their own directory (https://github.com/oneapi-src/level-zero/tree/master/source/drivers). I'm hoping that we will create a PR with these changes (and the loader + null implementation) soon. Unless there are different ideas?
from unified-runtime.
Sure something like that sounds reasonable to me.
We also need to discuss adding the test suite and any shared utilities (e.g. the command buffer software implementation when we eventually do that) somewhere, something like this perhaps?:
.
├── source
│ ├── adapters
│ │ ├── cuda
│ │ ├── hip
│ │ ├── null implementation
│ │ ├── level zero
│ │ └── opencl
│ ├── loader
│ └── utils
├── spec <- current content of this repo.
└── test
from unified-runtime.
This mostly looks sensible to me, although I don't think the current state of the repo should be wholesale moved into the spec
subdirectory.
I'm not fond of the spec source living in scripts/core*
, so I think that should be moved to spec/core*
.
I think scripts
should stay were it is and perhaps merged with the loader scripts?
The existing content in source
could probably move to test
.
from unified-runtime.
Yes - definitely, we are sorely missing tests :-) For the time being, the utils directory is going to be empty because work is going to happen in SYCL, but we can definitely do something like that.
As for where the spec is going to live, I was thinking more of just leaving it where it is (scripts/core). I like @kbenzie's suggestion to move just the spec's YAML files to a separate directory.
There's quite some overlap between the existing scripts and the loader scripts, so it makes sense to have them be located in the same directory.
from unified-runtime.
Following discussions within the Unified Runtime working group it has been decided to go with option c: Delete https://github.com/oneapi-src/unified-runtime-spec and do not rename this repo..
from unified-runtime.
https://github.com/oneapi-src/unified-runtime-spec has now been removed.
from unified-runtime.
Related Issues (20)
- Change to CMake options to build all adapters HOT 7
- Consider adding PROGRAM_INFO_IL HOT 1
- 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
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.