minor: use helper for frame packing
Build on RHEL8 / build (push) Successful in 2m47s
Build on RHEL9 / build (push) Successful in 2m56s
Run tests using data on local RHEL8 / build (push) Successful in 3m26s

This commit is contained in:
kferjaoui
2026-04-23 12:03:32 +02:00
parent e894bdac9b
commit b9caf2d53e
2 changed files with 32 additions and 6 deletions
+30
View File
@@ -0,0 +1,30 @@
// SPDX-License-Identifier: MPL-2.0
#pragma once
#include <vector>
#include <cstring>
#include "aare/NDArray.hpp"
template <typename FRAME_TYPE>
void pack_frame_batch(const std::vector<aare::NDArray<FRAME_TYPE, 2>>& frames,
size_t first_frame,
size_t n_frames,
std::vector<FRAME_TYPE>& batch)
{
if (n_frames == 0) return;
const size_t rows = frames[first_frame].shape(0);
const size_t cols = frames[first_frame].shape(1);
const size_t image_size = rows * cols;
const size_t total_size = n_frames * image_size;
if (batch.size() != total_size) {
batch.resize(total_size);
}
for (size_t k = 0; k < n_frames; ++k) {
const FRAME_TYPE* src = frames[first_frame + k].data();
FRAME_TYPE* dst = batch.data() + k * image_size;
std::memcpy(dst, src, image_size * sizeof(FRAME_TYPE));
}
}
+2 -6
View File
@@ -445,12 +445,8 @@ int main(int argc, char* argv[]) {
for (size_t bi = 0; bi < n_batches; ++bi) {
const size_t offset = bi * BATCH_SIZE;
const size_t actual_batch = std::min(BATCH_SIZE, use_data - offset);
for (size_t k = 0; k < actual_batch; ++k) {
std::memcpy(batch_buffer.data() + k * ROWS * COLS,
frames[offset + k].data(),
ROWS * COLS * sizeof(FRAME_TYPE));
}
pack_frame_batch(frames, offset, actual_batch, batch_buffer);
aare::NDView<FRAME_TYPE, 3> batch_view(
batch_buffer.data(),