oneapi-src / oneapi-src/SYCLomatic

Migrate the app (ktransformers) to SYCL/oneAPI

Open
#2,684 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Hackathon
Dominant language
LLVM
Stars
291
Forks
99
Avg merge
5d 5h
Merged PRs (30d)
1

Description

Target to migrate https://github.com/kvcache-ai/ktransformers.git to SYCL with the SYCLomatic tool: Analysis the migration gap, and fix the migration gap if possible.

  1. Migrate each CUDA file to SYCL file with the SYCLomatic tool.

  2. Build the SYCL file with SYCL compiler, fix the issues manually.

    a. For API/ASM not supported by the tool, it’s better to manual write an equal functionality with SYCL/oneAPI lib (which can be used to extent the migration capability of SYCLomatic).
    b. Or, Just comment out to make sure other code build well if SYCL/oneAPI side doesn’t have similar functionality.

  3. Report migration issue if there is CUDA code does not migrate well.

    a. It’s better to have small reproducer for each migration issues.

  4. Doc the migration steps and manual fix details.

a. Ref to readme file available in: https://github.com/oneapi-src/SYCLomatic-test/tree/SYCLomatic/third-party-programs/Velocity-Bench

  1. Commit the migration as test case into SYCLomatic-test repo.

a. Ref to: https://github.com/oneapi-src/SYCLomatic-test/tree/SYCLomatic/third-party-programs/Velocity-Bench

  1. For issues in step3, fix in SYCLomaitc if possible with some guide.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the SYCLomatic-test README for third-party-programs/Velocity-Bench and compare its migration layout with the ktransformers repository. Run SYCLomatic against each CUDA file, then build the resulting SYCL files with a SYCL compiler and record unsupported APIs or assembly in small reproducers. Done means the migration, manual fixes, documentation, and test-case commit are complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.