-
Notifications
You must be signed in to change notification settings - Fork 34
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
SIMD support in Menoh #85
Comments
Hi. Thank you for your trying. |
Hi ,
Thanks. |
Thank you for your important questions. I'll answer for them. (1) Currently Menoh is an experimental framework and its implementations are incomplete. Of course, there is a design document about Menoh but sorry it is not included in the documents in this repository yet. Menoh can be split into three parts: graph manipulation part, construction part and execution part. In graph manipulation part, users can modify graphs loaded from ONNX (or something, maybe): deleting nodes, adding nodes and parameters, merging different models or more aggressive operations. In construction part, multiple backends (which has specialized mechanisms to execute some operators faster. Currently there is only MKLDNN) parse partial graphs and generate procedure list. We are now planning to make backends customizable in various ways. So NNVM/TVM backend can be here. In execution part, users can execute procedures and take outputs. Also, we are seeking the better design to utilize DNN models outside laboratories. (2) Currently Menoh has only very simple computation graph optimizations (e.g. Trimming useless nodes). However, now we are planning to introduce some methods to optimize the graph into the graph manipulation part, cooperating with Chainer development team. |
Hi , Thankyou for your explanation. Based on your explanation , I could find similar graph optimisation techniques in NNVM and accelerated execution in TVM (based on muliple backends like CPU's, Opencl/Cuda GPU's, FPGA etc). I would like to know ,how different is Menoh from NNVM/TVM ? Thanks |
Thank you for your another important question. Let me explain the most different part between NNVM/TVM and Menoh. NNVM/TVM compiles trained models to dynamic libraries then applications load them and execute the operations. Model construction and execution are splitted different part. And execution part is a blackbox to users so users can not modify compiled models. On the other hand, Menoh doesn't compile but interprets computation graphs and execute without break. It is generally slower, but simpler design than NNVM/TVM's and users can modify anywhere smoothly with coding. When we need the speed, we can also wrap NNVM/TVM by Menoh and utilize its way with Menoh C API and many language bindings. |
Thank you for your detailed information ! |
Hi @okdshin , Thanks |
Hi @rajh619. Thanks question. |
Hi
I was trying Menoh vgg16 example.
Does Menoh utilizes SIMD IS (like sse4, avx2 ) to speed up the inference ?
If not is there an option to utilize SIMD for CPU in Menoh ?
Thanks
The text was updated successfully, but these errors were encountered: