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 Fixed original input and output types
- Loading branch information
1 parent
e24a5b8
commit aa21f81
Showing
97 changed files
with
4,366 additions
and
1,173 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.