Actual tasks on 2023
Torrero opened this issue · 11 comments
Dear @dayo09 @llFreetimell
I with @stamalakhov and @staddy would like to join to the ONE-vscode extensions development, can we discuss the actual tasks in this direction?
Summary for 2022
Let's collect all the features which are developed until 2022 to plan actual tasks on 2023!
For each features, there are no restriction about refactoring, which means that we can even destroy and reconstruct from the beginning if it is the right way :)
And one more thing. Even if some improvement points are written, it maybe impossible to do so because reality is not yet fully considered! Just for reference to collect tasks :)
Official Features
These features are remarked as official and can be seen in release note.
▶️ JsonTracer
JsonTracer
is for showing *.timeline.json
file whose format is Tracing compatible.
The file is usually generated for profiling.
Current Status
- Information in sample.timeline.json is displayed like Chrome tracer.
Improvement Points
- Embedding catapult instead of
JsonTracer
.- As current
JsonTracer
referencedcatapult
, embedding them has a benifit that we can fully support for trace event file. - UI is almost same.
- As current
- Open with Chrome tracer
- Chrome tracer is still maintained actively
- If we just have correct formatted trace event file, we can always success to open the file.
Related Issues/Links
▶️ Mondrian
Mondrian
is for showing *.tracealloc.json
file whose format is internal.
For more details for the format, please refer to internal repository.
The file is usually generated for profiling.
Current Status
- Display
*.tracealloc.json
with- Zoom in/out
- Set sycle range
- Detailed node information
- Multiple segments
Improvement Points
- Not yet discovered
Related Issues/Links
▶️ cfg Editor
There are so many options and arguments for writing *.cfg
file which is used in ONE.
cfg Editor
provides user-friendly and much easier GUI editor for *.cfg
file.
Current Status
- Support GUI for
*.cfg
file with- Enable/Disable each steps
- Show all the options for each steps
- Find file with file system dialog
- Provide help message for some of options
Improvement Points
- Support shortcuts
Ctrl + F5
: Compile cfgCtrl + ?
: Automatically fill default options- (more)
- Better UI
- Current UI may not be best for users
- Sync-up with multiple version of ONE
- We may display for some options that they are only supported under specific version
- If new feature is introduced in ONE, how can be sync-up effectively?
- Backend dependency
- For
Codegen
andProfile
steps, they are related with backend. - Users may not know which value should be entered for various backend.
- For
Related Issues/Links
- None
▶️ ONE Explorer
Default vscode explorer is not friendly for ONE users.
ONE Explorer
provides many useful features and UI for ONE users.
Current Status
- Show related files
- Base models(*.tflite, *.onnx, *.pb)
- ONE configs(*.cfg)
- Compiled models(*.circle, *.tvn)
- Logs and profiling results (*.log, *.trace.json, *.tracealloc.json)
- Open files with dedicated viewer/editors by clicking
- *.cfg, *.circle, *.trace.json, *.tracealloc.json
- Support
run cfg
- Support refresh on file system change
Improvement Points
- Support viewers for .tflite/.onnx
- React on command
- To reduce redundant rebuilding of the tree
- Support shortcuts
- rename (F2)
- delete (delete)
- run cfg
- Support drag & drop
- Fix duplicated path error of multiple workspace
Related Issues/Links
▶️ ONE Toolchain (@jyoungyun)
Most of ONE users are hard to install and manage ONE related toolchains.
ONE Toolchain
would decrease the resistance for using toolchains with convenient settings and UI.
Current Status
- Support TRIX Toolchain
- Support ONE Toolchain
Improvement Points
- Support new version notification
- Better UI
- Support page view in
Choose Compiler Toolchain
- Toolchain mouse-over view
- Support page view in
Related Issues/Links
- None
▶️ ONE Device (@jyoungyun)
There are many devices and ways to run ONE toolchains.
ONE Device
provides much intuitive device manager for ONE users.
Current Status
- Show runnable devices on local machine
- Requires internal vsix package
Improvement Points
- Support real target H/W
- Run backend binary on remote machine with
- Real target H/W
- S/W for running binary
- Compare and show the running results
- Profiling
Related Issues/Links
- #457
- Internal repository
Unofficial Features
These features are included in the release package, but not remarked as official.
As a result, we can execute them with release package but just remember that there can be some bugs or unresolved issues.
When they are ready to be official, they would be official features in the future!
⏯️ Metadata Viewer
Current Status
TBA
Improvement Points
TBA
Related Issues/Links
⏯️ Metadata Manager
Current Status
TBA
Improvement Points
TBA
Related Issues/Links
⏯️ circle Viewer
Before ONE-vscode is introduced, netron was used for *.circle
file viewer.
Now, circle Viewer
embedded netron into ONE-vscode and provides a viewer for *.circle
files.
Current Status
- Show
*.circle
file with netron UI.
Improvement Points
- Not yet discovered
Related Issues/Links
- None
⏯️ PartEditor
Editor for *.part
file which is required by circle-partitioner in ONE.
Current Status
- Edit
*.part
file as GUI
Improvement Points
- Unconfirmed
Related Issues/Links
⏯️ circle Editor
There was no editor for *.circle
file, only viewer was.
circle Editor
enables editing circle file with familiar circle file viewer UI.
Current Status
- Able to edit following things in
*.circle
file- Attributes
- Inputs/Outputs
- Weight values
- Shape
- Type
Improvement Points
- Edit raw file as JSON
- Advanced user may want to edit minutely model file
- There maybe unseen information at the editor UI
- Performance
- For now, whole model file is overwritten regardless of change size
- Unlike viewer, editor requires much computing resources
Related Issues/Links
⏯️ visquv
As a result of visq
, *.visq.json
is generated which includes quantization error metrics.
visquv
shows the file as GUI.
Current Status
- Show
*.visq.json
as circle file viewer GUI- Related circle model path is included in the
*.visq.json
file
- Related circle model path is included in the
Improvement Points
- Support
*.visq.json.dot
Related Issues/Links
Feature Requests
These features are not developed at all.
However, they are either good to have or must to have in the near future :)
⏸️ workflow Editor
Motivation
ONE has introduced workflow in onecc
but ONE-vscode is not yet supporting it as GUI.
Candidate Features
- Show
*.workflow.json
with good GUI - Support shortcuts
Ctrl + F5
: Compile cfgCtrl + ?
: Automatically fill default options- (more)
Related Issues/Links
⏸️ Quantization Utility
Motivation
cfg has Quantize
tab, but creating configuration files are not familiar to most of users.
In addition, applying quantization itself is not that easy for newbies.
If there is an awesome tool all about quantization, many users who wanted to quantize easily maybe happy!
Candidate Features
- Integrate all of quantization tools into one
- Create
*.qconf.json
easily - Run
circle-quantize
with GUI - Support mixed precision quantization with GUI
- (more)
- Create
Related Issues/Links
⏸️ Integrated circle File Viewer/Editor
Motivation
There are quite a lot of viewer/editor for circle file, such as circle Viewer
, PartEditor
, circleEditor
, VisqViewer
, and so on.
However, they have all the same netron UI.
It implies that they have following problems.
- Same(feature is diferent but UI is same) viewer/editor
- If there are more than 2 viewers, users maybe confused due to same appearance.
- Users should open many same viewer/editors when they need to do something different.
- Many duplicate codes
Candidate Features
- Integrated circle file viewer/editors into one
Infra/Etc
These are not features but must be maintained for ONE-vscode development and release.
▶️ code-marketplace (@jyoungyun)
- When new extension is released, it should be uploaded to marketplace.
- Internal extension is needed to be distributed but cannot be uploaded Public marketplace.
▶️ SE
- Potential defects are better to be removed
- There should be no license & copyright issues
- Tests should be enough to ensure the correctness
@Torrero, @stamalakhov, @staddy
All the candidate tasks are collected :)
We have also discussed the feature of weight visualization. It will help to detect model issues easily and speed up debugging. Then intermediate tensors, errors, etc. visualization may also be implemented.
@dayo09 @llFreetimell, what do you think about this feature?
what do you think about this feature?
This feature can be introduced in ONE-vscode. Welcome!
PartEditor was implemented by @seanshpark. He has a lot of knowledge about netron and UI implementation in VSCode extension. He can help you with what you're trying to do. /cc @seanshpark
First of all, please make an issue of what you want to do for weight visualization.
And let's continue the discussion there.
@Samsung/one-vscode
We need to discuss how to manage and proceed with this project in the future.
As far as I know, the current ONE-vscode project has only tow members @dayo09 and @jyoungyun.
Unfortunately, @llFreetimell can no longer participate. He goes to study for two years.
This means that no one has merge rights in ONE-vscode. (In fact, @llFreetimell does not have the role of merging PR, but he did so because no one has the permission to merge. Thank you.)
And sometimes @seanshpark and @mhs4670go helped us merge our PR. (Thank you!)
In ONE-vscode, AMPQ or above items will be developed this year. (Who?
How should we proceed with this project in the future?
In ONE-vscode, AMPQ or above items will be developed this year. (Who?
👀 )
I think I could do some reviews related with UI and circle viewer control applications :)
@seanshpark @dayo09 @jyoungyun
BTW is anyone interested in providing/viewing metadata for compiler products?
I'm going to implement only toolchain related things in ONE-vscode this year. :)
@stamalakhov It was planned and drafted last year, but not merged. If you are interested, you can go on with that. I am currently not planned, too
@stamalakhov It was planned and drafted last year, but not merged. If you are interested, you can go on with that. I am currently not planned, too
ok. Thank you.
I'm going to implement only toolchain related things in ONE-vscode this year. :)
ok. Thank you.