loongarch64: Add buffer offset for target LOONGSON3R5
This commit is contained in:
parent
6017ad7146
commit
637c650f4f
|
@ -1074,12 +1074,9 @@ fprintf(STDERR, "Server[%2ld] Calculation started. Mode = 0x%03x M = %3ld N=%3l
|
||||||
main_status[cpu] = MAIN_RUNNING1;
|
main_status[cpu] = MAIN_RUNNING1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//For Loongson servers, like the 3C5000 (featuring 16 cores), applying an
|
//For target LOONGSON3R5, applying an offset to the buffer is essential
|
||||||
//offset to the buffer is essential for minimizing cache conflicts and optimizing performance.
|
//for minimizing cache conflicts and optimizing performance.
|
||||||
#if defined(LOONGSON3R5) && !defined(NO_AFFINITY)
|
#if defined(ARCH_LOONGARCH64) && !defined(NO_AFFINITY)
|
||||||
char model_name[128];
|
|
||||||
get_cpu_model(model_name);
|
|
||||||
if ((strstr(model_name, "3C5000") != NULL) || (strstr(model_name, "3D5000") != NULL))
|
|
||||||
if (sa == NULL) sa = (void *)((BLASLONG)buffer + (WhereAmI() & 0xf) * GEMM_OFFSET_A);
|
if (sa == NULL) sa = (void *)((BLASLONG)buffer + (WhereAmI() & 0xf) * GEMM_OFFSET_A);
|
||||||
#endif
|
#endif
|
||||||
if (sa == NULL) sa = (void *)((BLASLONG)buffer + GEMM_OFFSET_A);
|
if (sa == NULL) sa = (void *)((BLASLONG)buffer + GEMM_OFFSET_A);
|
||||||
|
|
|
@ -521,15 +521,10 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANS
|
||||||
|
|
||||||
buffer = (XFLOAT *)blas_memory_alloc(0);
|
buffer = (XFLOAT *)blas_memory_alloc(0);
|
||||||
|
|
||||||
//For Loongson servers, like the 3C5000 (featuring 16 cores), applying an
|
//For target LOONGSON3R5, applying an offset to the buffer is essential
|
||||||
//offset to the buffer is essential for minimizing cache conflicts and optimizing performance.
|
//for minimizing cache conflicts and optimizing performance.
|
||||||
#if defined(LOONGSON3R5) && !defined(NO_AFFINITY)
|
#if defined(ARCH_LOONGARCH64) && !defined(NO_AFFINITY)
|
||||||
char model_name[128];
|
|
||||||
get_cpu_model(model_name);
|
|
||||||
if ((strstr(model_name, "3C5000") != NULL) || (strstr(model_name, "3D5000") != NULL))
|
|
||||||
sa = (XFLOAT *)((BLASLONG)buffer + (WhereAmI() & 0xf) * GEMM_OFFSET_A);
|
sa = (XFLOAT *)((BLASLONG)buffer + (WhereAmI() & 0xf) * GEMM_OFFSET_A);
|
||||||
else
|
|
||||||
sa = (XFLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A);
|
|
||||||
#else
|
#else
|
||||||
sa = (XFLOAT *)((BLASLONG)buffer +GEMM_OFFSET_A);
|
sa = (XFLOAT *)((BLASLONG)buffer +GEMM_OFFSET_A);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue