mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-27 20:02:15 +00:00
Work on minimizing memory management calls by reducing number of allocations and copies. Replace std::unordered_set to InlinedHashSet and add usage of InlinedVector. Employ std::move() to minimize copying and memory allocations. Remove copying of the const shared data into each of the PropagateCast transformer instances. Move inlined_containers.h header to include/common Adjust AsSpan imlementation for C++ < 17
24 lines
729 B
C++
24 lines
729 B
C++
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
#pragma once
|
|
|
|
#include "core/optimizer/graph_transformer.h"
|
|
|
|
namespace onnxruntime {
|
|
|
|
/**
|
|
@Class GeluApproximation
|
|
|
|
Rewrite graph to replace Gelu or AddGeluFusion by FastGelu node. FastGelu uses approximation for Gelu,
|
|
and it is faster.
|
|
*/
|
|
class GeluApproximation : public GraphTransformer {
|
|
public:
|
|
GeluApproximation(const InlinedHashSet<std::string_view>& compatible_execution_providers={}) noexcept
|
|
: GraphTransformer("GeluApproximation", compatible_execution_providers) {}
|
|
|
|
Status ApplyImpl(Graph& graph, bool& modified, int graph_level, const logging::Logger& logger) const override;
|
|
};
|
|
|
|
} // namespace onnxruntime
|