forked from openvinotoolkit/openvino
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Snippets increase subgraph size (#3)
- Implement static TileScheduler to handle compile params processing. Now compile params are accessed only here - TileScheduler should emit code only for necessary scalar/vector Tiles - Perform abstract-to-physical register mapping in one place (currently KernelEmitter constructor) - Implement more precise register mapping, so larger subgraphs could be created (now up to 12 i/o regs instead of 7) Increments are invalid in some tests because of TileScheduler optimizations Optimizations fixed, the tests pass Ok Pass increment and dims to op::Tile constructor Added support of Convert FP32, BF16, I8, U8 [Snippets] Fixed output tensor names for wrap_as_subgraph [Snippets] Fixed increments of offsets Fixes after rebase Fixed tests Fixed InsertAfterNode - Input precision Added getRuntimePrecision Applied first part by Ivan Added forgotten files Reverted input==output exception Partly applied 2nd review by Ivan Reverted incremenets of ptr fixed ptr incr Applied the next iteration Removed Contexts from load and store emitters Changes after merge *Remove contexts from Load/Store emitters*
- Loading branch information
1 parent
b33f22c
commit e44b886
Showing
106 changed files
with
5,332 additions
and
2,050 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
36 changes: 0 additions & 36 deletions
36
src/common/snippets/include/snippets/op/blockedparameter.hpp
This file was deleted.
Oops, something went wrong.
40 changes: 40 additions & 0 deletions
40
src/common/snippets/include/snippets/op/convert_saturation.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
// Copyright (C) 2018-2022 Intel Corporation | ||
// SPDX-License-Identifier: Apache-2.0 | ||
// | ||
|
||
#pragma once | ||
|
||
#include <openvino/op/convert.hpp> | ||
#include "ngraph/op/op.hpp" | ||
|
||
namespace ngraph { | ||
namespace snippets { | ||
namespace op { | ||
|
||
/** | ||
* @interface ConvertSaturation | ||
* @brief The implementation uses "saturation" conversion. | ||
* It means that if the values are outside the limits | ||
* of the maximum and minimum values of the data type, they are clamped. | ||
* For example, int_32t ---> int8_t | ||
* 129 ---> 127 | ||
* Note: It isn't covered by specification of "Convert" op | ||
* This op is used for conversion into and from FP32 after the correspoding Load | ||
* and before Store to calculate in FP32 inside subgraph body in CPU Plugin | ||
* @ingroup snippets | ||
*/ | ||
class ConvertSaturation : public ov::op::v0::Convert { | ||
public: | ||
OPENVINO_OP("ConvertSaturation", "SnippetsOpset", ov::op::v0::Convert); | ||
|
||
ConvertSaturation(const Output<Node>& x, const ov::element::Type& destination_type); | ||
ConvertSaturation() = default; | ||
|
||
std::shared_ptr<Node> clone_with_new_inputs(const OutputVector& new_args) const override; | ||
|
||
bool has_evaluate() const override { return false; } | ||
}; | ||
|
||
} // namespace op | ||
} // namespace snippets | ||
} // namespace ngraph |
38 changes: 38 additions & 0 deletions
38
src/common/snippets/include/snippets/op/convert_truncation.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
// Copyright (C) 2018-2022 Intel Corporation | ||
// SPDX-License-Identifier: Apache-2.0 | ||
// | ||
|
||
#pragma once | ||
|
||
#include <openvino/op/convert.hpp> | ||
#include "ngraph/op/op.hpp" | ||
|
||
namespace ngraph { | ||
namespace snippets { | ||
namespace op { | ||
|
||
/** | ||
* @interface ConvertTruncation | ||
* @brief The implementation doesn't "saturation" conversion. | ||
* It means that if there are overflow, the values will wrap around. | ||
* For example, int_32t ---> int8_t | ||
* 129 ---> -127 | ||
* Note: It is covered by specification of "Convert" op | ||
* This op is used for real Convert ops inside subgraph body in CPU Plugin | ||
* @ingroup snippets | ||
*/ | ||
class ConvertTruncation : public ov::op::v0::Convert { | ||
public: | ||
OPENVINO_OP("ConvertTruncation", "SnippetsOpset", ov::op::v0::Convert); | ||
|
||
ConvertTruncation(const Output<Node>& x, const ov::element::Type& destination_type); | ||
ConvertTruncation() = default; | ||
|
||
std::shared_ptr<Node> clone_with_new_inputs(const OutputVector& new_args) const override; | ||
|
||
bool has_evaluate() const override { return false; } | ||
}; | ||
|
||
} // namespace op | ||
} // namespace snippets | ||
} // namespace ngraph |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.