Files
openvino/src/plugins/intel_gpu
Paul Youngsoo Ahn 0b5603fa98 [GPU] improve primitive impl caching mechanism with new unified key (#14797)
* [GPU] improved impl cache key (#14797)
- Add hash function for primitive and program_node
- Filter task before entering async compilation queue

* [GPU] improved impl cache key (#14797)
- Multiply magic prime number at input value of hash_combine to avoid hash collision

* [GPU] Update codes to follow up review comments (#14797)
- Change func name from pop_front_task to erase_front_task
- Change func name from get_layout_key to get_impl_key
- Remove average_unpooling.hpp because it was alread removed
- Replace std::list to std::deque in compilation_context
- Modify layout::hash() to get hash of shape from partial shape
- Remove calculation code to get hash from static layout in program_node => layout hash is calculated outside of program_node

* [GPU] Update gpu functional test for improved impl key (#14797)

* [GPU] update compilation queue (#14797)

* [GPU] Move type_string hash to primitive (#14797)
- Add hash for num_outputs in program_node

* [GPU] update hash functions for program_node (#14797)
- add hash for number of inputs in program_node
- program node::hash() had separated into void program node::caclulate_hash() and size_t program_node::get_hash()

* [GPU] Fix gpu unit test failures (#14797)
- move the location to calculate all nodes from compile_graph to program ctor

* [GPU] Fix build issue after rebase (#14797)

* [GPU] Update impl if optimized kernel is in impl_cache even if the shape does not change. (#14797)
- Apply improved hash key to mem kernels cache in update_weight
- Add missing hash value for broadcast
- Add simple unit test to check hash value for program_node, primitive and program_inst
2023-01-30 14:35:58 -08:00
..

Attached licenses

GPU plugin uses 3rd-party components licensed under following licenses:

Support

Please report issues and suggestions GitHub issues.

How to Contribute

We welcome community contributions to GPU plugin. If you have an idea how to improve the library:

  • Share your proposal via GitHub issues
  • Ensure you can build the product and run all the tests with your patch
  • In the case of a larger feature, create a test
  • Submit a pull request

We will review your contribution and, if any additional fixes or modifications are necessary, may provide feedback to guide you. When accepted, your pull request will be merged into our GitHub repository.

System Requirements

GPU plugin supports Intel® HD Graphics and Intel® Iris® Graphics and is optimized for Gen9-Gen12LP architectures

GPU plugin currently uses OpenCL™ with multiple Intel OpenCL™ extensions and requires Intel® Graphics Driver to run.

GPU plugin requires CPU with Intel® SSE/Intel® AVX support.


The software dependencies are:

  • CMake* 3.5 or later
  • C++ compiler with C++11 standard support compatible with:
    • GNU* Compiler Collection 4.8 or later
    • clang 3.5 or later
    • Intel® C++ Compiler 17.0 or later
    • Visual C++ 2015 (MSVC++ 19.0) or later

Intel® CPU intrinsics header (<immintrin.h>) must be available during compilation.

Trademark Information

Intel, the Intel logo, Intel Atom, Intel Core, Intel Xeon Phi, Iris, OpenVINO, the OpenVINO logo, Pentium, VTune, and Xeon are trademarks of Intel Corporation or its subsidiaries.

* Other names and brands may be claimed as the property of others.

Microsoft, Windows, and the Windows logo are trademarks, or registered trademarks of Microsoft Corporation in the United States and/or other countries.

OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.

Copyright © 2021, Intel Corporation