Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Yao a meta package #159

Closed
3 of 6 tasks
Roger-luo opened this issue Jan 5, 2019 · 2 comments
Closed
3 of 6 tasks

Make Yao a meta package #159

Roger-luo opened this issue Jan 5, 2019 · 2 comments
Milestone

Comments

@Roger-luo
Copy link
Member

Roger-luo commented Jan 5, 2019

This is a proposal which will make Yao.jl a meta package of several concrete package for quantum information science like DifferentialEquations.

By separating each different part into several packages, it will be easier to maintain mature part of the package, and develop new features in separated repo rapidly.

Name conventions

All the package will start with Yao to enable tab completion for convenience.

Mature part of the package

  • YaoBase, this package includes the abstract register, testing tools, and miscellanea
  • YaoArrayRegister, this package includes the default dense register implementation
  • YaoBlockTree, this package provides the block tree abstraction

Packages will be under early stage

  • CuYao, this package includes the CUDA register and block operations.
  • YaoAD/YaoFlux, this package includes the automatic differentiation for quantum circuits

Package separated for general use

  • BitBasis

In the future, Yao.jl will only provide a few eye-candy and ester egg and re-export the above package as a meta-package.

@Roger-luo Roger-luo added this to the v0.3 milestone Jan 5, 2019
@GiggleLiu
Copy link
Member

GiggleLiu commented Jan 5, 2019

Please don't change the name of CuYao, this name has been used in my slides and my recent paper. Not all packages in GPUJulia start with GPU, right?
So, please remove the statement "tab completion for convenience", this is not a reason.

@Roger-luo Roger-luo modified the milestones: v0.3, v0.4 Mar 7, 2019
@Roger-luo
Copy link
Member Author

CuYao will become a meta package as well to make it easier to install, since we don't have conditional dependency in Pkg. (Ref: JuliaLang/Pkg.jl#977)

CuYao will contain the following:

  • what's in Yao.jl for CPU and reexport what's Yao has
  • CUDA kernels (this might be move out of the repo to YaoCuArrayRegister later), but we keep it in CuYao for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants