Coder Social home page Coder Social logo

Repo Naming about unified-runtime HOT 12 CLOSED

oneapi-src avatar oneapi-src commented on June 28, 2024
Repo Naming

from unified-runtime.

Comments (12)

zackwaters avatar zackwaters commented on June 28, 2024 2

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.

FranklandJack avatar FranklandJack commented on June 28, 2024 1

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.

pbalcer avatar pbalcer commented on June 28, 2024

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.

FranklandJack avatar FranklandJack commented on June 28, 2024

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.

pbalcer avatar pbalcer commented on June 28, 2024

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.

FranklandJack avatar FranklandJack commented on June 28, 2024

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.

pbalcer avatar pbalcer commented on June 28, 2024

@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.

FranklandJack avatar FranklandJack commented on June 28, 2024

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.

kbenzie avatar kbenzie commented on June 28, 2024

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.

pbalcer avatar pbalcer commented on June 28, 2024

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.

FranklandJack avatar FranklandJack commented on June 28, 2024

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.

kbenzie avatar kbenzie commented on June 28, 2024

https://github.com/oneapi-src/unified-runtime-spec has now been removed.

from unified-runtime.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.