Skip to content

Commit b044757

Browse files
authoredSep 14, 2023
[GPU] doc update for broken links (openvinotoolkit#19829)
1 parent 4ca3d51 commit b044757

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed
 

‎src/plugins/intel_gpu/docs/gpu_plugin_ops_enabling.md

+15-16
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
## Terminology
44

55
* **NGraph operation**: Building block of neural networks, such as convolution or pooling.
6-
* **(clDNN) Primitive**: Basic NN operation that was defined in clDNN. One primitive is usually mapped to one ngraph operation, but graph compilation may cause the mapping not to be 1-to-1.
6+
* **(GPU) Primitive**: Basic NN operation that was defined in GPU. One primitive is usually mapped to one ngraph operation, but graph compilation may cause the mapping not to be 1-to-1.
77
* **Kernel**: Actual body of execution in GPU. It also refers to specific implementations of **Primitive** for GPU, such as `convolution_gpu_winograd_2x3_s1.cl`. Usually, single kernel fulfills the operation of a single primitive, but several kernels may be used to support one primitive.
8-
* **Unittest**: Single-layer test within clDNN.
8+
* **Unittest**: Single-layer test within GPU plugin.
99
* **Functional test**: Single-layer test in IE.
1010

1111
## Adding new primitive
@@ -14,33 +14,33 @@
1414
* Review the [ngraph operation spec](https://github.com/openvinotoolkit/openvino/tree/master/docs/ops)
1515
* IE operations(a.k.a primitive or NN-layer) are defined by ngraph.
1616
* You can check ngraph reference implementation of the primitive as well
17-
* For example, [Scatter Elements Update in nGraph](https://github.com/openvinotoolkit/openvino/blob/master/src/core/reference/include/ngraph/runtime/reference/scatter_elements_update.hpp)
17+
* For example, [Scatter Elements Update in nGraph](https://github.com/openvinotoolkit/openvino/blob/master/src/core/reference/include/openvino/reference/scatter_elements_update.hpp)
1818

1919
1. Try to find existing primitive that fully or partially covers this operation.
2020
* It is also possible to transform the network so that the missing primitive is covered from existing primitive.
2121
* For example, [replace reduce with pooling](https://github.com/openvinotoolkit/openvino/blob/23808f46f7b5d464fd649ad278f253eec12721b3/inference-engine/src/cldnn_engine/cldnn_engine.cpp#L205).
2222

23-
1. Add new / extend existing clDNN primitive according to the operation spec.
24-
1. This phase is to enable primitive within clDNN library, without exposing it to IE.
23+
1. Add new / extend existing GPU primitive according to the operation spec.
24+
1. This phase is to enable primitive within GPU plugin, without exposing it to IE.
2525
1. Implement **reference parallel kernel** that supports all parameters of the operation and all input/output data types and layouts.
2626

2727
| File | Description |
2828
|------|-------------|
2929
| [scatter_elements_update_ref.cl](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/kernel_selector/cl_kernels/scatter_elements_update_ref.cl) | OpenCL Kernel body. For more detail, please see [How to write OCL kernel](#writing-ocl-kernel) section |
3030
| [scatter_elements_update_kernel_ref.(cpp,h)](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/kernel_selector/kernels/scatter_update/scatter_elements_update_kernel_ref.cpp) | Counterpart of kernel body for host |
3131
| [scatter_elements_update_kernel_selector.(cpp,h)](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/kernel_selector/kernels/scatter_update/scatter_elements_update_kernel_selector.cpp) | Kernel selector for a primitive |
32-
| [register_gpu.(cpp,hpp)](https://github.com/openvinotoolkit/openvino/blob/master/inference-engine/thirdparty/clDNN/src/gpu/register_gpu.cpp) | Primitive registration |
33-
| [scatter_elements_update_gpu.cpp](https://github.com/openvinotoolkit/openvino/blob/master/inference-engine/thirdparty/clDNN/src/gpu/scatter_elements_update_gpu.cpp) | Primitive registration, input spec |
34-
| [scatter_elements_update_inst.h](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/graph/include/scatter_elements_update_inst.h) | Node type declaration for clDNN program |
35-
| [clDNN/src/scatter_elements_update.cpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/graph/scatter_elements_update.cpp) | Code for scatter_elements_update_inst.h |
36-
| [clDNN/api/cldnn/primitives/scatter_elements_update.hpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/include/intel_gpu/primitives/scatter_elements_update.hpp) | clDNN primitive definition |
32+
| [register.(cpp,hpp)](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/graph/impls/ocl/register.cpp) | Primitive registration |
33+
| [scatter_elements_update.cpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/graph/impls/ocl/scatter_elements_update.cpp) | Primitive registration, input spec |
34+
| [scatter_elements_update_inst.h](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/graph/include/scatter_elements_update_inst.h) | Node type declaration for GPU program |
35+
| [src/graph/scatter_elements_update.cpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/graph/scatter_elements_update.cpp) | Code for scatter_elements_update_inst.h |
36+
| [primitives/scatter_elements_update.hpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/include/intel_gpu/primitives/scatter_elements_update.hpp) | GPU primitive definition |
3737
| [common_types.h](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/kernel_selector/common_types.h) | Enum declaration for KernelType and arguments |
3838

3939
1. Add unit tests for the new operation.
4040

4141
| File | Description |
4242
|------|-------------|
43-
| [scatter_elements_update_gpu_test.cpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/tests/test_cases/scatter_elements_update_gpu_test.cpp) | Unittest for layer |
43+
| [scatter_elements_update_gpu_test.cpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/tests/unit/test_cases/scatter_elements_update_gpu_test.cpp) | Unittest for layer |
4444

4545
* You need to add reference code or expected result for checking the result.
4646

@@ -67,16 +67,15 @@
6767
1. Support layer fusion, if applicable
6868
* It is usually easy to fuse some layers, such as *scale*, *activation*, *quantize*, and *eltwise*, into the previous layer. This fusing rule can be added to `prepare_primitive_fusing::fuse_simple_primitives`.
6969
* `fuse_simple_primitives` is called during [graph compilation phase](https://github.com/openvinotoolkit/openvino/blob/71c50c224964bf8c24378d16f015d74e2c1e1ce8/inference-engine/thirdparty/clDNN/src/program.cpp#L430)
70-
* See general description of layer fusion [here](https://docs.openvinotoolkit.org/latest/openvino_docs_IE_DG_supported_plugins_CL_DNN.html#optimizations)
71-
* Unit tests for layer fusion are placed in a single file: [fusings_gpu_test.cpp](https://github.com/openvinotoolkit/openvino/blob/master/inference-engine/thirdparty/clDNN/tests/test_cases/fusings_gpu_test.cpp). It is also compiled into `ov_gpu_unit_tests`.
70+
* Unit tests for layer fusion: [link](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/tests/unit/fusions/scatter_elements_update_fusion_test.cpp). It is also compiled into `ov_gpu_unit_tests`.
7271
* Code for fused layers are generated with `jitter`. It is created as `FUSED_OPS..` macro in OCL code. This generation logic is in `KernelBase::MakeFusedOpsJitConstants`.
7372
7473
1. Add / update factory for this operation in the GPU plugin to use new primitive in inference-engine.
7574
7675
| File | Description |
7776
|------|-------------|
78-
| [cldnn_engine/ops/scatter_elements_update.cpp](https://github.com/openvinotoolkit/openvino/blob/master/inference-engine/src/cldnn_engine/ops/scatter_elements_update.cpp) | Instantiation from clDNN plugin for IE |
79-
| [cldnn_primitives_list.hpp](https://github.com/openvinotoolkit/openvino/blob/master/inference-engine/src/cldnn_engine/cldnn_primitives_list.hpp) | Registration for primitives |
77+
| [plugin/ops/scatter_elements_update.cpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/src/plugin/ops/scatter_elements_update.cpp) | Instantiation of gpu plugin primitive from IE |
78+
| [primitives_list.hpp](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/include/intel_gpu/plugin/primitives_list.hpp) | Registration for primitives |
8079
8180
1. Add functional single-layer tests for the operation and try to cover most of the different use cases of this operation.
8281
@@ -126,7 +125,7 @@ Jitter generates macros for index calculations. With these macros, you can progr
126125
127126
If a kernel is not performance-critical, you can support `bfyx`, `bfzyx` and `bfwzyx` only for layout. Those are default layouts. As an optimized format, `b_fs_yx_fsv16`, `b_fs_yx_fsv4` or `byxf` can be used as well.
128127
129-
[General description of layout can be found here](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/docs/gpu_memory_formats.md) and [header file is here](https://github.com/openvinotoolkit/openvino/blob/master/inference-engine/thirdparty/clDNN/api/tensor.hpp).
128+
[General description of layout can be found here](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/docs/gpu_memory_formats.md) and [header file is here](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu/include/intel_gpu/runtime/format.hpp).
130129
131130
### Layer fusion
132131

0 commit comments

Comments
 (0)
Please sign in to comment.