| 
5 | 5 | #include <sys/types.h>  | 
6 | 6 | 
 
  | 
7 | 7 | #include <alpaka/core/Common.hpp>  | 
 | 8 | +#include <cstdint>  | 
8 | 9 | #include <string>  | 
9 | 10 | 
 
  | 
10 | 11 | #include "nlohmann/json.hpp"  | 
@@ -121,10 +122,8 @@ TEST_CASE("Single size malloc") {  | 
121 | 122 | 
 
  | 
122 | 123 | namespace setups::mallocFreeManySize {  | 
123 | 124 | 
 
  | 
124 |  | -  std::vector<std::uint32_t> ALLOCATION_SIZES  | 
125 |  | -      = {16U, 256U, 1024U, 16U, 16U, 256U, 16U, 1024U, 1024U};  | 
126 | 125 |   struct MallocFreeRecipe {  | 
127 |  | -    std::vector<std::uint32_t> sizes{ALLOCATION_SIZES};  | 
 | 126 | +    const std::array<std::uint32_t, 9> sizes{16U, 256U, 1024U, 16U, 16U, 256U, 16U, 1024U, 1024U};  | 
128 | 127 |     std::uint32_t currentIndex{0U};  | 
129 | 128 |     void* currentPointer{nullptr};  | 
130 | 129 | 
 
  | 
@@ -155,29 +154,17 @@ namespace setups::mallocFreeManySize {  | 
155 | 154 | 
 
  | 
156 | 155 |   auto makeInstructionDetails() { return InstructionDetails<MallocFreeRecipe>{}; }  | 
157 | 156 | 
 
  | 
158 |  | -  namespace detail {  | 
159 |  | -    template <typename T> T unique(T const& values) {  | 
160 |  | -      // It's a pity but the following are algorithms and not "adaptors", so the pipe operator  | 
161 |  | -      // doesn't work.  | 
162 |  | -      T tmp = values;  | 
163 |  | -      std::ranges::sort(tmp);  | 
164 |  | -      const auto [new_end, old_end] = std::ranges::unique(tmp);  | 
165 |  | -      return {std::begin(tmp), new_end};  | 
166 |  | -    }  | 
167 |  | -  }  // namespace detail  | 
168 |  | - | 
169 | 157 |   auto composeSetup() {  | 
170 | 158 |     return composeSetup("mallocFreeManySize", makeExecutionDetails(), makeInstructionDetails(),  | 
171 | 159 |                         {{"what it does",  | 
172 | 160 |                           "This setup runs through a given vector of allocation sizes, allocating "  | 
173 | 161 |                           "and deallocating each size one after another."},  | 
174 |  | -                         {"number of allocations", ALLOCATION_SIZES.size()},  | 
175 |  | -                         {"available allocation sizes [bytes]", detail::unique(ALLOCATION_SIZES)}});  | 
 | 162 | +                         {"number of allocations", MallocFreeRecipe{}.sizes.size()}});  | 
176 | 163 |   }  | 
177 | 164 | 
 
  | 
178 | 165 | }  // namespace setups::mallocFreeManySize  | 
179 | 166 | 
 
  | 
180 | 167 | TEST_CASE("Malloc free many size") {  | 
181 | 168 |   auto setup = setups::mallocFreeManySize::composeSetup();  | 
182 |  | -  auto benchmarkReports = runBenchmarks(setup);  | 
 | 169 | +  auto benchmarkReports = kitgenbench::runBenchmarks(setup);  | 
183 | 170 | }  | 
0 commit comments