Cálculos por lotes en C++
Prueba la API SIMD, incluida una cola fuera de un grupo de cuatro valores.
Prepara el consumidor
Enlaza el módulo de ejecución ScientificNumberTools e incluye ScientificNumberSIMD.h. La API por lotes es C++ nativo; un helper de ejemplo que la llame desde Blueprint no es un nodo SIMD comercial.
Suma cinco valores
#include "ScientificNumberSIMD.h"
FScientificNumber A[] = {FScientificNumber(10), FScientificNumber(20),
FScientificNumber(30), FScientificNumber(40), FScientificNumber(50)};
FScientificNumber B[] = {FScientificNumber(1), FScientificNumber(2),
FScientificNumber(3), FScientificNumber(4), FScientificNumber(5)};
FScientificNumber Out[5];
FScientificNumberSIMD::BatchAdd(A, B, Out, 5);
Resultado esperado
Out contiene 11, 22, 33, 44 y 55. El quinto valor comprueba la cola que queda fuera de un grupo de cuatro.
Comprueba los demás operadores
| Operación sobre A | Resultado esperado |
|---|---|
| BatchMultiplyScalar por 2 | 20, 40, 60, 80, 100 |
| BatchCompareGreater frente a B | Todas las máscaras verdaderas |
| Sum | 150 |
| Min / Max | 10 / 50 |
| BatchNormalize | Los mismos valores numéricos normalizados |
Reserva buffers de salida suficientes y respeta las firmas nativas. Consulta GetCapabilities() en vez de asumir un backend concreto. Prueba el hardware y la configuración de compilación que vayas a distribuir. Estas operaciones mantienen la política y los límites de precisión del plugin.