From 0f2dd1c633b73268d872b74ef615fcf927b8d9cf Mon Sep 17 00:00:00 2001 From: Elliott Slaughter Date: Wed, 16 Sep 2026 11:44:19 -0700 Subject: [PATCH 1/4] Fixes for GCC 14 and deploy test. --- .github/workflows/deploy.yml | 2 +- lib/utils/include/utils/containers/filter.h | 1 + lib/utils/include/utils/containers/inplace_filter.h | 3 +++ lib/utils/include/utils/containers/unordered_set_of.h | 2 +- .../graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml | 1 + .../kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml | 1 + lib/utils/src/utils/containers/merge_disjoint_maps.cc | 4 ++-- .../src/utils/containers/merge_maps_with_right_dominating.cc | 4 ++-- .../containers/merge_unordered_maps_with_right_dominating.cc | 5 ++--- 9 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index aad4b036b4..47c68509d4 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -23,4 +23,4 @@ jobs: strategy: matrix: - gcc: [10, 11] + gcc: [10, 11, 14] diff --git a/lib/utils/include/utils/containers/filter.h b/lib/utils/include/utils/containers/filter.h index 85a413c2c7..1b39dec2cd 100644 --- a/lib/utils/include/utils/containers/filter.h +++ b/lib/utils/include/utils/containers/filter.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include diff --git a/lib/utils/include/utils/containers/inplace_filter.h b/lib/utils/include/utils/containers/inplace_filter.h index dc0491773f..2e696613ec 100644 --- a/lib/utils/include/utils/containers/inplace_filter.h +++ b/lib/utils/include/utils/containers/inplace_filter.h @@ -3,6 +3,9 @@ #include "utils/containers/filter.h" #include +#include +#include +#include #include #include diff --git a/lib/utils/include/utils/containers/unordered_set_of.h b/lib/utils/include/utils/containers/unordered_set_of.h index 5a8dcd9f55..011ecb515d 100644 --- a/lib/utils/include/utils/containers/unordered_set_of.h +++ b/lib/utils/include/utils/containers/unordered_set_of.h @@ -9,7 +9,7 @@ namespace FlexFlow { template std::unordered_set unordered_set_of(C const &c) { - return std::unordered_set{c.cbegin(), c.cend()}; + return std::unordered_set{c.cbegin(), c.cend()}; } template diff --git a/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml b/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml index 5d924017ae..c96a8a3f6e 100644 --- a/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml +++ b/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml @@ -14,6 +14,7 @@ template_params = [ ] includes = [ + "utils/fmt/optional.h", "utils/graph/node/node.dtg.h", ] diff --git a/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml b/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml index 9a58e2f686..88a90ba00b 100644 --- a/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml +++ b/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml @@ -14,6 +14,7 @@ template_params = [ ] includes = [ + "utils/fmt/optional.h", "utils/graph/node/node.dtg.h", "utils/nonnegative_int/nonnegative_int.h", ] diff --git a/lib/utils/src/utils/containers/merge_disjoint_maps.cc b/lib/utils/src/utils/containers/merge_disjoint_maps.cc index cf2d0fd3ec..0adc2896d6 100644 --- a/lib/utils/src/utils/containers/merge_disjoint_maps.cc +++ b/lib/utils/src/utils/containers/merge_disjoint_maps.cc @@ -6,8 +6,8 @@ namespace FlexFlow { using K = ordered_value_type<0>; using V = value_type<1>; -using C = std::vector>; -template std::map merge_disjoint_maps(C const &); +template std::map + merge_disjoint_maps(std::vector> const &); } // namespace FlexFlow diff --git a/lib/utils/src/utils/containers/merge_maps_with_right_dominating.cc b/lib/utils/src/utils/containers/merge_maps_with_right_dominating.cc index dff4708c81..032b8cdaf3 100644 --- a/lib/utils/src/utils/containers/merge_maps_with_right_dominating.cc +++ b/lib/utils/src/utils/containers/merge_maps_with_right_dominating.cc @@ -6,8 +6,8 @@ namespace FlexFlow { using K = ordered_value_type<0>; using V = value_type<1>; -using C = std::vector>; -template std::map merge_maps_with_right_dominating(C const &); +template std::map + merge_maps_with_right_dominating(std::vector> const &); } // namespace FlexFlow diff --git a/lib/utils/src/utils/containers/merge_unordered_maps_with_right_dominating.cc b/lib/utils/src/utils/containers/merge_unordered_maps_with_right_dominating.cc index 9208df8f6a..408beca434 100644 --- a/lib/utils/src/utils/containers/merge_unordered_maps_with_right_dominating.cc +++ b/lib/utils/src/utils/containers/merge_unordered_maps_with_right_dominating.cc @@ -5,9 +5,8 @@ namespace FlexFlow { using K = value_type<0>; using V = value_type<1>; -using C = std::vector>; -template std::unordered_map - merge_unordered_maps_with_right_dominating(C const &); +template std::unordered_map merge_unordered_maps_with_right_dominating( + std::vector> const &); } // namespace FlexFlow From 14751b82dc007dabe6b250326bef500c7665d1db Mon Sep 17 00:00:00 2001 From: Elliott Slaughter Date: Wed, 16 Sep 2026 13:06:18 -0700 Subject: [PATCH 2/4] Fixes for op-attrs. --- lib/op-attrs/include/op-attrs/parallel_dim.h | 3 ++- lib/op-attrs/src/op-attrs/parallel_dim.cc | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/op-attrs/include/op-attrs/parallel_dim.h b/lib/op-attrs/include/op-attrs/parallel_dim.h index a12951dec9..ec56dd4f26 100644 --- a/lib/op-attrs/include/op-attrs/parallel_dim.h +++ b/lib/op-attrs/include/op-attrs/parallel_dim.h @@ -2,6 +2,7 @@ #define _FLEXFLOW_OP_ATTRS_INCLUDE_OP_ATTRS_PARALLEL_DIM_H #include "op-attrs/parallel_dim.dtg.h" +#include "utils/positive_int/positive_int.h" namespace FlexFlow { @@ -11,7 +12,7 @@ bool is_replica_dim(ParallelDim const &); ParallelDim with_size_set_to(ParallelDim const &, size_t); ParallelDim with_degree_set_to(ParallelDim const &, int); ParallelDim with_is_replica_set_to(ParallelDim const &, bool); -int get_degree(ParallelDim const &); +positive_int get_degree(ParallelDim const &); } // namespace FlexFlow diff --git a/lib/op-attrs/src/op-attrs/parallel_dim.cc b/lib/op-attrs/src/op-attrs/parallel_dim.cc index 26ba2b3fa1..116d72e5be 100644 --- a/lib/op-attrs/src/op-attrs/parallel_dim.cc +++ b/lib/op-attrs/src/op-attrs/parallel_dim.cc @@ -3,8 +3,8 @@ namespace FlexFlow { -int get_degree(ParallelDim const &dim) { - return dim.visit(overload{ +positive_int get_degree(ParallelDim const &dim) { + return dim.visit(overload{ [](ShardParallelDim const &shard_dim) { return shard_dim.degree; }, [](ReplicaParallelDim const &replica_dim) { return replica_dim.degree; From 8f6e66dcc5e06dfdfe65354a012f10c88fb59e83 Mon Sep 17 00:00:00 2001 From: Elliott Slaughter Date: Fri, 18 Sep 2026 11:52:33 -0700 Subject: [PATCH 3/4] Remove fmt/optional from graph DTG. --- .../graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml | 1 - .../graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml b/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml index c96a8a3f6e..5d924017ae 100644 --- a/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml +++ b/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_input.dtg.toml @@ -14,7 +14,6 @@ template_params = [ ] includes = [ - "utils/fmt/optional.h", "utils/graph/node/node.dtg.h", ] diff --git a/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml b/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml index 88a90ba00b..9a58e2f686 100644 --- a/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml +++ b/lib/utils/include/utils/graph/kwarg_dataflow_graph/kwarg_dataflow_output.dtg.toml @@ -14,7 +14,6 @@ template_params = [ ] includes = [ - "utils/fmt/optional.h", "utils/graph/node/node.dtg.h", "utils/nonnegative_int/nonnegative_int.h", ] From 0530410985a8ead725fa8a58fab9ad3827ffbc0c Mon Sep 17 00:00:00 2001 From: Elliott Slaughter Date: Fri, 18 Sep 2026 11:55:54 -0700 Subject: [PATCH 4/4] Remove template hacks. --- lib/utils/src/utils/containers/merge_disjoint_maps.cc | 4 ++-- .../src/utils/containers/merge_maps_with_right_dominating.cc | 4 ++-- .../containers/merge_unordered_maps_with_right_dominating.cc | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/utils/src/utils/containers/merge_disjoint_maps.cc b/lib/utils/src/utils/containers/merge_disjoint_maps.cc index 0adc2896d6..cf2d0fd3ec 100644 --- a/lib/utils/src/utils/containers/merge_disjoint_maps.cc +++ b/lib/utils/src/utils/containers/merge_disjoint_maps.cc @@ -6,8 +6,8 @@ namespace FlexFlow { using K = ordered_value_type<0>; using V = value_type<1>; +using C = std::vector>; -template std::map - merge_disjoint_maps(std::vector> const &); +template std::map merge_disjoint_maps(C const &); } // namespace FlexFlow diff --git a/lib/utils/src/utils/containers/merge_maps_with_right_dominating.cc b/lib/utils/src/utils/containers/merge_maps_with_right_dominating.cc index 032b8cdaf3..dff4708c81 100644 --- a/lib/utils/src/utils/containers/merge_maps_with_right_dominating.cc +++ b/lib/utils/src/utils/containers/merge_maps_with_right_dominating.cc @@ -6,8 +6,8 @@ namespace FlexFlow { using K = ordered_value_type<0>; using V = value_type<1>; +using C = std::vector>; -template std::map - merge_maps_with_right_dominating(std::vector> const &); +template std::map merge_maps_with_right_dominating(C const &); } // namespace FlexFlow diff --git a/lib/utils/src/utils/containers/merge_unordered_maps_with_right_dominating.cc b/lib/utils/src/utils/containers/merge_unordered_maps_with_right_dominating.cc index 408beca434..9208df8f6a 100644 --- a/lib/utils/src/utils/containers/merge_unordered_maps_with_right_dominating.cc +++ b/lib/utils/src/utils/containers/merge_unordered_maps_with_right_dominating.cc @@ -5,8 +5,9 @@ namespace FlexFlow { using K = value_type<0>; using V = value_type<1>; +using C = std::vector>; -template std::unordered_map merge_unordered_maps_with_right_dominating( - std::vector> const &); +template std::unordered_map + merge_unordered_maps_with_right_dominating(C const &); } // namespace FlexFlow