Closed hyunsik-yoon closed 2 years ago
How about following designing thinking framework? (https://www.justinmind.com/blog/design-thinking-process-ux-design/) The process is as follows:
I am not sure if we could finish step 4 and and step 5. However, thinking over step 1 to 3 would also be very valuable.
Today, we (@hyunsik-yoon, @jyoungyun, Yunjae Hong) discussed 1. Empathy
.
In this process, user's activities towards compiling model need to be collected.
The following is the list of who/what/how/why/issue
.
target_code = one.compile(model); target_code.value_test(); target_code.measure()
$ gcc test.cc
works OKO1
, O2
, ... just like what they do with gcc
Category | Problem | Note |
---|---|---|
Installation | ONE-vscode and onecc are installed only in Ubuntu device | end-user may use different OS |
Installation | ONE-vscode and onecc are installed separately | |
Update | Upgrading ONE-vscode and onecc is difficult | - Upgrade is not automatic and it may cause version mismatch. - It is questionable if installed ONE-vscode can be used with the latest version of onecc. |
target H/W support | ONE-vscode cannot be used with real target H/W | Installing and configuring required S/W on target device is difficult. |
Input model | Generation of tflite and ONNX, which are input format of onecc is difficult | - end-user may not know what tflite or ONNX is. - Exporting tflite or ONNX may cause error. |
Compile | There is no default option for compilation (like $ gcc test.cc ) |
Too many parameters are frustrating at the first trial of compilation. |
Compile | It is hard to select optimization parameters. | optimization parameters are too complicated. Learning all options seems frustrating. |
Compile | Not sure what quantization is | end-users are familiar with f32 models but may not with quantization. |
Verify | It is hard to check if compiled target code runs really correctly. | - There is no tool for value test. - It is hard to make input data. - Actual result from target H/W should be value-checked too. |
Verify | It is hard to check if compiled target code shows good performance. | - Not sure how to do performance check. - Even though performance test was successful, the result is hard to understand. - With the result, it is hard to pinpoint which line in model source code should be enhanced. - Performance from target H/W should also be presented. |
Verify | It is hard to check how much Dram is consumed with the compiled target code. | There is no such tool. |
Compilation Step | Steps in compilation are complex and some steps need to be ran separately in CLI. | - There is no way to run whole steps (from compilation to verification) with, e.g., one short-cut key. - All commands related to circle are not familiar and difficult to understand. |
file management | It is difficult to manage revision and history of model files, input data, and target code. | it is difficult to reproduce a specific target code. |
error | It is difficult to understand error message. | Not sure the meaning of error message related to circle or target code means. |
error | it is hard to report unsolvable error. | - Not sure whom to contact to. - Posting an open issue in Github might be psychologically difficult to some developers. - Writing an error report that can be easily reproduced takes long time. |
https://github.com/Samsung/ONE-vscode/issues/282#issuecomment-1028849954
- note: Even ourselves cannot guarantee if compiler produces correct target code. End-user also feels that. Therefore value test is a reasonable activity.
To be precise, the compiler will generate (and should generate) correct code. But we cannot guarantee that it will produce correct values. Much of it will be due to quantization error.
These are the list of items after 3. Ideation
.
Note:
Let's prioritize the above items, considering 2022 goal and preference of involved people. Let me close this issue.
So far ONE-vscode has been developed, focusing on functionality of tools we provide.
It's time to think over UX that embraces user's needs.