diff --git a/src/nnue/trainer/trainer_affine_transform.h b/src/nnue/trainer/trainer_affine_transform.h index 3179aeb0..449a0a11 100644 --- a/src/nnue/trainer/trainer_affine_transform.h +++ b/src/nnue/trainer/trainer_affine_transform.h @@ -353,18 +353,18 @@ namespace Eval::NNUE { LayerType* const target_layer_; // parameter - LearnFloatType biases_[kOutputDimensions]; - LearnFloatType weights_[kOutputDimensions * kInputDimensions]; + alignas(kCacheLineSize) LearnFloatType biases_[kOutputDimensions]; + alignas(kCacheLineSize) LearnFloatType weights_[kOutputDimensions * kInputDimensions]; // Buffer used for updating parameters - LearnFloatType biases_diff_[kOutputDimensions]; - LearnFloatType weights_diff_[kOutputDimensions * kInputDimensions]; + alignas(kCacheLineSize) LearnFloatType biases_diff_[kOutputDimensions]; + alignas(kCacheLineSize) LearnFloatType weights_diff_[kOutputDimensions * kInputDimensions]; // Forward propagation buffer - std::vector output_; + std::vector> output_; // buffer for back propagation - std::vector gradients_; + std::vector> gradients_; // hyper parameter LearnFloatType momentum_; diff --git a/src/nnue/trainer/trainer_clipped_relu.h b/src/nnue/trainer/trainer_clipped_relu.h index 57e9bac4..5f2ff065 100644 --- a/src/nnue/trainer/trainer_clipped_relu.h +++ b/src/nnue/trainer/trainer_clipped_relu.h @@ -149,10 +149,10 @@ namespace Eval::NNUE { LayerType* const target_layer_; // Forward propagation buffer - std::vector output_; + std::vector> output_; // buffer for back propagation - std::vector gradients_; + std::vector> gradients_; // Health check statistics LearnFloatType min_activations_[kOutputDimensions]; diff --git a/src/nnue/trainer/trainer_feature_transformer.h b/src/nnue/trainer/trainer_feature_transformer.h index 97b19c46..9f0648d2 100644 --- a/src/nnue/trainer/trainer_feature_transformer.h +++ b/src/nnue/trainer/trainer_feature_transformer.h @@ -421,11 +421,11 @@ namespace Eval::NNUE { LearnFloatType weights_[kHalfDimensions * kInputDimensions]; // Buffer used for updating parameters - LearnFloatType biases_diff_[kHalfDimensions]; - std::vector gradients_; + alignas(kCacheLineSize) LearnFloatType biases_diff_[kHalfDimensions]; + std::vector> gradients_; // Forward propagation buffer - std::vector output_; + std::vector> output_; // Features that appeared in the training data std::bitset observed_features; @@ -437,8 +437,8 @@ namespace Eval::NNUE { // Health check statistics LearnFloatType min_pre_activation_; LearnFloatType max_pre_activation_; - LearnFloatType min_activations_[kHalfDimensions]; - LearnFloatType max_activations_[kHalfDimensions]; + alignas(kCacheLineSize) LearnFloatType min_activations_[kHalfDimensions]; + alignas(kCacheLineSize) LearnFloatType max_activations_[kHalfDimensions]; }; } // namespace Eval::NNUE diff --git a/src/nnue/trainer/trainer_input_slice.h b/src/nnue/trainer/trainer_input_slice.h index 43968776..9b8e5e13 100644 --- a/src/nnue/trainer/trainer_input_slice.h +++ b/src/nnue/trainer/trainer_input_slice.h @@ -163,7 +163,7 @@ namespace Eval::NNUE { const LearnFloatType* output_; // buffer for back propagation - std::vector gradients_; + std::vector> gradients_; }; // Learning: Input layer @@ -256,10 +256,10 @@ namespace Eval::NNUE { const std::shared_ptr shared_input_trainer_; // Forward propagation buffer - std::vector output_; + std::vector> output_; // buffer for back propagation - std::vector gradients_; + std::vector> gradients_; }; } // namespace Eval::NNUE diff --git a/src/nnue/trainer/trainer_sum.h b/src/nnue/trainer/trainer_sum.h index c2e40b1c..b35420d6 100644 --- a/src/nnue/trainer/trainer_sum.h +++ b/src/nnue/trainer/trainer_sum.h @@ -184,7 +184,7 @@ namespace Eval::NNUE { LayerType* const target_layer_; // Forward propagation buffer - std::vector output_; + std::vector> output_; }; } // namespace Eval::NNUE