echuraev commented on code in PR #13867:
URL: https://github.com/apache/tvm/pull/13867#discussion_r1092772481
##########
docs/how_to/deploy/adreno.rst:
##########
@@ -15,41 +15,60 @@
specific language governing permissions and limitations
under the License.
-Deploy to Adreno GPU
-=======================================
+Deploy to Adreno™ GPU
+====================
Review Comment:
```suggestion
=====================
```
##########
docs/how_to/deploy/adreno.rst:
##########
@@ -65,134 +84,667 @@ Reasons of using textures:
Overall, with textures, it is possible to achieve a significant performance
boost
compared to OpenCL buffer based solutions.
-.. _building_tvm_for_adreno:
+.. _about_openclml:
+
+About OpenCLML
+--------------
+
+OpenCLML is a SDK released by Qualcomm that provides accelerated deep learning
operators.
+These operators are exposed as an extension "cl_qcom_ml_ops" to standard
OpenCL specification.
+Please refer `Accelerate your models with our OpenCL ML SDK
<https://developer.qualcomm.com/blog/accelerate-your-models-our-opencl-ml-sdk>`_
for more details.
+
+OpenCLML is integrated into TVM as a `BYOC
<https://tvm.apache.org/docs/dev/how_to/relay_bring_your_own_codegen.html?highlight=bring%20your%20own>`_
solution.
+OpenCLML operators can use same context and the operatrors can be enqueued on
same command queue if native OpenCL.
+We took advantage of this to avoid any context switching over heads while
fallback to native OpenCL.
+
+
+.. _build_deploy:
+
+TVM for Adreno™
Review Comment:
Originally, this document was designed to be a brief introduction to the
Adreno usage in TVM. And details related to deployment were described here:
https://tvm.apache.org/docs/how_to/deploy_models/deploy_model_on_android.html
One of the benefit of `deploy_model_on_android` document was that user was
able to run this script locally with python and run an example on his android.
You have removed a link to this document.
Also, this `rst` document starts to be much bigger. And it is more
difficult to get quickly some basic knowledge about Adreno. Previously, section
`Build and deploy model for Adreno` briefly showed the peculiarities of the
Adreno compilation. For example, differences in the generated kernels with
`opencl` and `opencl --device=adreno` and also some information about mixed
precision.
My suggestions are:
1. Extent `Building TVM for Adreno` section by the information about
building from docker container.
2. For sections about running model on the device and using CLML, create a
new doc file or update
[deploy_model_on_adreno](https://github.com/apache/tvm/blob/main/gallery/how_to/deploy_models/deploy_model_on_adreno.py)
@srkreddy1238 what do you think about it? I would like to keep this `rst`
file as a brief introduction to Adreno and all details move to the
`gallery/how_to/deploy_models`.
##########
docs/how_to/deploy/adreno.rst:
##########
@@ -15,41 +15,60 @@
specific language governing permissions and limitations
under the License.
-Deploy to Adreno GPU
-=======================================
+Deploy to Adreno™ GPU
+====================
-**Authors**: Daniil Barinov, Egor Churaev, Andrey Malyshev
+**Authors**: Daniil Barinov, Egor Churaev, Andrey Malyshev, Siva Rama Krishna
Introduction
------------
-Adreno is a series of graphics processing unit (GPU) semiconductor
+Adreno™ is a series of graphics processing unit (GPU) semiconductor
intellectual property cores developed by Qualcomm and used in many of
their SoCs.
-The Adreno GPU accelerates the rendering of complex geometries to
+The Adreno™ GPU accelerates the rendering of complex geometries to
deliver high-performance graphics and a rich user experience with low
power consumption.
-This guide will demonstrate :ref:`the benefits of using textures with
Adreno<advantages_of_the_textures>`,
-how to :ref:`build TVM with OpenCL<building_tvm_for_adreno>` (needed by Adreno
devices) and TVM RPC
-enabled. It will also provide :ref:`example
code<build_and_deploy_model_for_adreno>` to better understand the differences
in compiling and deploying models
-for Adreno devices.
+TVM supports deep learning acceleration on Adreno™ GPU by native OpenCL
backend of TVM and
+also through OpenCLML backend. Native OpenCL backend of TVM is enhanced to
make it
+Adreno™ friendly by incorporating texture memory usage and Adreno™ friendly
layouts.
+OpenCLML is an SDK release by Qualcomm that provides kernel acceleration
library
+for most of the deep learning operators.
-.. _advantages_of_the_textures:
+This guide is organized to demonstrate various design aspects of
-Advantages of the Textures
---------------------------
+- :ref:`OpenCL Backend Ehnahcements<opencl_enhancements>`
+- :ref:`About OpenCLML<about_openclml>`
+- :ref:`Build and Deploy<build_deploy>`
-One of the Adreno's advantages is the clever handling of textures. At
+
+
+.. how to :ref:`build TVM with OpenCL<building_tvm_for_adreno>` (needed by
Adreno™ devices) and TVM RPC
+.. enabled. It will also provide :ref:`example
code<build_and_deploy_model_for_adreno>` to better understand the differences
in compiling and deploying models
+.. for Adreno™ devices.
Review Comment:
This text is not displayed in the final documentation. Screenshot:
<img width="599" alt="image"
src="https://user-images.githubusercontent.com/5525113/215960834-d554ded0-5d55-41c6-bef5-f484c78c2028.png">
##########
docs/how_to/deploy/adreno.rst:
##########
@@ -65,134 +84,667 @@ Reasons of using textures:
Overall, with textures, it is possible to achieve a significant performance
boost
compared to OpenCL buffer based solutions.
-.. _building_tvm_for_adreno:
+.. _about_openclml:
+
+About OpenCLML
+--------------
+
+OpenCLML is a SDK released by Qualcomm that provides accelerated deep learning
operators.
+These operators are exposed as an extension "cl_qcom_ml_ops" to standard
OpenCL specification.
+Please refer `Accelerate your models with our OpenCL ML SDK
<https://developer.qualcomm.com/blog/accelerate-your-models-our-opencl-ml-sdk>`_
for more details.
+
+OpenCLML is integrated into TVM as a `BYOC
<https://tvm.apache.org/docs/dev/how_to/relay_bring_your_own_codegen.html?highlight=bring%20your%20own>`_
solution.
+OpenCLML operators can use same context and the operatrors can be enqueued on
same command queue if native OpenCL.
Review Comment:
```suggestion
OpenCLML operators can use same context and can be enqueued on same command
queue as used in native OpenCL.
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]