[crf] using 32 bytes for posix_memalign to align blocks of 4 doubles for remez algorithm to fix test which uses an odd-sized context
This commit is contained in:
@@ -41,7 +41,7 @@ crf_context_t *crf_context_new(int flag, size_t L, size_t T) {
|
|||||||
|
|
||||||
if (context->flag & CRF_CONTEXT_MARGINALS) {
|
if (context->flag & CRF_CONTEXT_MARGINALS) {
|
||||||
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
||||||
context->exp_state = double_matrix_new_aligned(T, L, 16);
|
context->exp_state = double_matrix_new_aligned(T, L, 32);
|
||||||
if (context->exp_state == NULL) goto exit_context_created;
|
if (context->exp_state == NULL) goto exit_context_created;
|
||||||
double_matrix_zero(context->exp_state);
|
double_matrix_zero(context->exp_state);
|
||||||
#else
|
#else
|
||||||
@@ -53,7 +53,7 @@ crf_context_t *crf_context_new(int flag, size_t L, size_t T) {
|
|||||||
if (context->mexp_state == NULL) goto exit_context_created;
|
if (context->mexp_state == NULL) goto exit_context_created;
|
||||||
|
|
||||||
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
||||||
context->exp_state_trans = double_matrix_new_aligned(T, L * L, 16);
|
context->exp_state_trans = double_matrix_new_aligned(T, L * L, 32);
|
||||||
if (context->exp_state_trans == NULL) goto exit_context_created;
|
if (context->exp_state_trans == NULL) goto exit_context_created;
|
||||||
double_matrix_zero(context->exp_state_trans);
|
double_matrix_zero(context->exp_state_trans);
|
||||||
#else
|
#else
|
||||||
@@ -65,7 +65,7 @@ crf_context_t *crf_context_new(int flag, size_t L, size_t T) {
|
|||||||
if (context->mexp_state_trans == NULL) goto exit_context_created;
|
if (context->mexp_state_trans == NULL) goto exit_context_created;
|
||||||
|
|
||||||
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
||||||
context->exp_trans = double_matrix_new_aligned(L, L, 16);
|
context->exp_trans = double_matrix_new_aligned(L, L, 32);
|
||||||
if (context->exp_trans == NULL) goto exit_context_created;
|
if (context->exp_trans == NULL) goto exit_context_created;
|
||||||
double_matrix_zero(context->exp_trans);
|
double_matrix_zero(context->exp_trans);
|
||||||
#else
|
#else
|
||||||
@@ -131,13 +131,13 @@ bool crf_context_set_num_items(crf_context_t *self, size_t T) {
|
|||||||
if (self->flag & CRF_CONTEXT_MARGINALS &&
|
if (self->flag & CRF_CONTEXT_MARGINALS &&
|
||||||
(
|
(
|
||||||
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
||||||
!double_matrix_resize_aligned(self->exp_state, T, L, 16) ||
|
!double_matrix_resize_aligned(self->exp_state, T, L, 32) ||
|
||||||
#else
|
#else
|
||||||
!double_matrix_resize(self->exp_state, T, L) ||
|
!double_matrix_resize(self->exp_state, T, L) ||
|
||||||
#endif
|
#endif
|
||||||
!double_matrix_resize(self->mexp_state, T, L) ||
|
!double_matrix_resize(self->mexp_state, T, L) ||
|
||||||
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
#if defined(INTEL_SSE) || defined(ARM_NEON)
|
||||||
!double_matrix_resize_aligned(self->exp_state_trans, T, L * L, 16) ||
|
!double_matrix_resize_aligned(self->exp_state_trans, T, L * L, 32) ||
|
||||||
#else
|
#else
|
||||||
!double_matrix_resize(self->exp_state_trans, T, L * L) ||
|
!double_matrix_resize(self->exp_state_trans, T, L * L) ||
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user