Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into siqad-coord-iteration
Browse files Browse the repository at this point in the history
  • Loading branch information
wlambooy committed May 24, 2023
2 parents 6a41e60 + 27223ad commit 0953003
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 11 deletions.
3 changes: 2 additions & 1 deletion experiments/bestagon/bestagon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ int main() // NOLINT

static constexpr const uint64_t bench_select = fiction_experiments::all & ~fiction_experiments::b1_r2 &
~fiction_experiments::clpl & ~fiction_experiments::two_bit_add_maj &
~fiction_experiments::parity;
~fiction_experiments::parity & ~fiction_experiments::iscas85 &
~fiction_experiments::epfl;

for (const auto& benchmark : fiction_experiments::all_benchmarks(bench_select))
{
Expand Down
5 changes: 3 additions & 2 deletions experiments/color_routing/color_routing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,9 @@ void ortho_sat_complete()
"runtime graph coloring (sec)",
"equivalent"};

constexpr const uint64_t bench_select =
fiction_experiments::all & ~fiction_experiments::majority & ~fiction_experiments::newtag;
constexpr const uint64_t bench_select = fiction_experiments::all & ~fiction_experiments::majority &
~fiction_experiments::newtag & ~fiction_experiments::iscas85 &
~fiction_experiments::epfl;

for (const auto& benchmark : fiction_experiments::all_benchmarks(bench_select))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,8 @@ int main() // NOLINT

constexpr const uint64_t bench_select = fiction_experiments::all & ~fiction_experiments::parity &
~fiction_experiments::two_bit_add_maj & ~fiction_experiments::b1_r2 &
~fiction_experiments::clpl;
~fiction_experiments::clpl & ~fiction_experiments::iscas85 &
~fiction_experiments::epfl;

for (const auto& benchmark : fiction_experiments::all_benchmarks(bench_select))
{
Expand Down
87 changes: 80 additions & 7 deletions experiments/fiction_experiments.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ inline constexpr uint64_t xor2_f = 0b000000000000000000000000000000000
inline constexpr uint64_t one_bit_add_aoig = 0b0000000000000000000000000000000000000000000000000000000100000000;
inline constexpr uint64_t t = 0b0000000000000000000000000000000000000000000000000000001000000000;
inline constexpr uint64_t t_5 = 0b0000000000000000000000000000000000000000000000000000010000000000;
inline constexpr uint64_t c17 = 0b0000000000000000000000000000000000000000000000000000100000000000;
inline constexpr uint64_t c17_f = 0b0000000000000000000000000000000000000000000000000000100000000000;
inline constexpr uint64_t b1_r2 = 0b0000000000000000000000000000000000000000000000000001000000000000;
inline constexpr uint64_t majority = 0b0000000000000000000000000000000000000000000000000010000000000000;
inline constexpr uint64_t majority_5_r1 = 0b0000000000000000000000000000000000000000000000000100000000000000;
Expand All @@ -49,20 +49,65 @@ inline constexpr uint64_t xor5_maj = 0b000000000000000000000000000000000
inline constexpr uint64_t parity = 0b0000000000000000000000000000000000000000010000000000000000000000;
inline constexpr uint64_t fontes18 = 0b0000000000000000000000000000000000000000011111111111111110000000;

inline constexpr uint64_t all = 0b0000000000000000000000000000000000000000011111111111111111111111;
/* ISCAS benchmarks */
inline constexpr uint64_t c17 = 0b0000000000000000000000000000000000000000100000000000000000000000;
inline constexpr uint64_t c432 = 0b0000000000000000000000000000000000000001000000000000000000000000;
inline constexpr uint64_t c499 = 0b0000000000000000000000000000000000000010000000000000000000000000;
inline constexpr uint64_t c880 = 0b0000000000000000000000000000000000000100000000000000000000000000;
inline constexpr uint64_t c1355 = 0b0000000000000000000000000000000000001000000000000000000000000000;
inline constexpr uint64_t c1908 = 0b0000000000000000000000000000000000010000000000000000000000000000;
inline constexpr uint64_t c2670 = 0b0000000000000000000000000000000000100000000000000000000000000000;
inline constexpr uint64_t c3540 = 0b0000000000000000000000000000000001000000000000000000000000000000;
inline constexpr uint64_t c5315 = 0b0000000000000000000000000000000010000000000000000000000000000000;
inline constexpr uint64_t c6288 = 0b0000000000000000000000000000000100000000000000000000000000000000;
inline constexpr uint64_t c7552 = 0b0000000000000000000000000000001000000000000000000000000000000000;
inline constexpr uint64_t iscas85 = 0b0000000000000000000000000000001111111111100000000000000000000000;

/* EPFL benchmarks */
inline constexpr uint64_t adder = 0b0000000000000000000000000000010000000000000000000000000000000000;
inline constexpr uint64_t bar = 0b0000000000000000000000000000100000000000000000000000000000000000;
inline constexpr uint64_t max = 0b0000000000000000000000000001000000000000000000000000000000000000;
inline constexpr uint64_t sin = 0b0000000000000000000000000010000000000000000000000000000000000000;
inline constexpr uint64_t cavlc = 0b0000000000000000000000000100000000000000000000000000000000000000;
inline constexpr uint64_t ctrl = 0b0000000000000000000000001000000000000000000000000000000000000000;
inline constexpr uint64_t dec = 0b0000000000000000000000010000000000000000000000000000000000000000;
inline constexpr uint64_t i2c = 0b0000000000000000000000100000000000000000000000000000000000000000;
inline constexpr uint64_t int2float = 0b0000000000000000000001000000000000000000000000000000000000000000;
inline constexpr uint64_t priority = 0b0000000000000000000010000000000000000000000000000000000000000000;
inline constexpr uint64_t router = 0b0000000000000000000100000000000000000000000000000000000000000000;
inline constexpr uint64_t arbiter = 0b0000000000000000001000000000000000000000000000000000000000000000;
inline constexpr uint64_t voter = 0b0000000000000000010000000000000000000000000000000000000000000000;
inline constexpr uint64_t square = 0b0000000000000000100000000000000000000000000000000000000000000000;
inline constexpr uint64_t log2 = 0b0000000000000001000000000000000000000000000000000000000000000000;
inline constexpr uint64_t sqrt = 0b0000000000000010000000000000000000000000000000000000000000000000;
inline constexpr uint64_t multiplier = 0b0000000000000100000000000000000000000000000000000000000000000000;
inline constexpr uint64_t epfl = 0b0000000000000111111111111111110000000000000000000000000000000000;

inline constexpr uint64_t all = 0b000000000000011111111111111111111111111111111111111111111111111;

/* extra functions */


static constexpr const std::array benchmarks {
"trindade16/mux21", "trindade16/xor2", "trindade16/xnor2", "trindade16/par_gen",
"trindade16/HA", "trindade16/FA", "trindade16/par_check",

"fontes18/xor", "fontes18/1bitAdderAOIG", "fontes18/t", "fontes18/t_5", "fontes18/c17", "fontes18/b1_r2",
"fontes18/majority", "fontes18/majority_5_r1", "fontes18/newtag", "fontes18/clpl", "fontes18/xor5_r1",
"fontes18/1bitAdderMaj", "fontes18/cm82a_5", "fontes18/2bitAdderMaj", "fontes18/xor5Maj", "fontes18/parity"};
"fontes18/1bitAdderMaj", "fontes18/cm82a_5", "fontes18/2bitAdderMaj", "fontes18/xor5Maj", "fontes18/parity",

"iscas85/c17", "iscas85/c432", "iscas85/c499", "iscas85/c880", "iscas85/c1355", "iscas85/c1908", "iscas85/c2670",
"iscas85/c3540", "iscas85/c5315", "iscas85/c6288", "iscas85/c7552",

"epfl/adder", "epfl/bar", "epfl/max", "epfl/sin", "epfl/cavlc", "epfl/ctrl", "epfl/dec", "epfl/i2c",
"epfl/int2float", "epfl/priority", "epfl/router", "epfl/arbiter", "epfl/voter", "epfl/square", "epfl/log2",
"epfl/sqrt", "epfl/multiplier",
};

// clang-format on
// NOLINTEND(readability-identifier-naming)

std::vector<std::string> trindade16_benchmarks(uint64_t selection = trindade16)
inline std::vector<std::string> trindade16_benchmarks(uint64_t selection = trindade16)
{
std::vector<std::string> result{};
for (uint64_t i = 0u; i < 7u; ++i)
Expand All @@ -76,7 +121,7 @@ std::vector<std::string> trindade16_benchmarks(uint64_t selection = trindade16)
return result;
}

std::vector<std::string> fontes18_benchmarks(uint64_t selection = fontes18)
inline std::vector<std::string> fontes18_benchmarks(uint64_t selection = fontes18)
{
std::vector<std::string> result{};
for (uint64_t i = 7u; i < 23u; ++i)
Expand All @@ -90,10 +135,38 @@ std::vector<std::string> fontes18_benchmarks(uint64_t selection = fontes18)
return result;
}

std::vector<std::string> all_benchmarks(uint64_t selection = all)
inline std::vector<std::string> iscas85_benchmarks(uint64_t selection = iscas85)
{
std::vector<std::string> result{};
for (uint64_t i = 23u; i < 34u; ++i)
{
if (((selection >> i) & 1u) != 0u)
{
result.emplace_back(benchmarks.at(i));
}
}

return result;
}

inline std::vector<std::string> epfl_benchmarks(uint64_t selection = epfl)
{
std::vector<std::string> result{};
for (uint64_t i = 34u; i < 51u; ++i)
{
if (((selection >> i) & 1u) != 0u)
{
result.emplace_back(benchmarks.at(i));
}
}

return result;
}

inline std::vector<std::string> all_benchmarks(uint64_t selection = all)
{
std::vector<std::string> result{};
for (uint64_t i = 0u; i < 23u; ++i)
for (uint64_t i = 0u; i < 51u; ++i)
{
if (((selection >> i) & 1u) != 0u)
{
Expand Down

0 comments on commit 0953003

Please sign in to comment.