Browse Source

Change the block size on Loongson 3B.

tags/v0.1.0^2
Wang Qian 14 years ago
parent
commit
8163ab7e55
4 changed files with 23 additions and 8 deletions
  1. +2
    -2
      driver/level3/gemm_thread_mn.c
  2. +2
    -2
      driver/level3/gemm_thread_variable.c
  3. +16
    -1
      driver/others/parameter.c
  4. +3
    -3
      param.h

+ 2
- 2
driver/level3/gemm_thread_mn.c View File

@@ -77,8 +77,8 @@ int CNAME(int mode, blas_arg_t *arg, BLASLONG *range_m, BLASLONG *range_n, int (
range_M[0] = 0;
i = arg -> m;
} else {
range_M[0] = range_M[0];
i = range_M[1] - range_M[0];
range_M[0] = range_m[0];
i = range_m[1] - range_m[0];
}

num_cpu_m = 0;


+ 2
- 2
driver/level3/gemm_thread_variable.c View File

@@ -55,8 +55,8 @@ int CNAME(int mode,
range_M[0] = 0;
i = arg -> m;
} else {
range_M[0] = range_M[0];
i = range_M[1] - range_M[0];
range_M[0] = range_m[0];
i = range_m[1] - range_m[0];
}

num_cpu_m = 0;


+ 16
- 1
driver/others/parameter.c View File

@@ -683,7 +683,7 @@ void blas_set_parameter(void){

#if defined(ARCH_MIPS64)
void blas_set_parameter(void){
#if defined(LOONGSON3A) || defined(LOONGSON3B)
#if defined(LOONGSON3A)
#ifdef SMP
if(blas_num_threads == 1){
#endif
@@ -696,5 +696,20 @@ void blas_set_parameter(void){
}
#endif
#endif

#if defined(LOONGSON3B)
#ifdef SMP
if(blas_num_threads == 1 || blas_num_threads == 2){
#endif
//single thread
dgemm_r = 640;
#ifdef SMP
}else{
//multi thread
dgemm_r = 160;
}
#endif
#endif

}
#endif

+ 3
- 3
param.h View File

@@ -1502,10 +1502,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define CGEMM_DEFAULT_Q 128
#define ZGEMM_DEFAULT_Q 80

#define SGEMM_DEFAULT_R 1024
#define SGEMM_DEFAULT_R 640
#define DGEMM_DEFAULT_R dgemm_r
#define CGEMM_DEFAULT_R 1024
#define ZGEMM_DEFAULT_R 1024
#define CGEMM_DEFAULT_R 640
#define ZGEMM_DEFAULT_R 640

#define GEMM_OFFSET_A1 0x10000
#define GEMM_OFFSET_B1 0x100000


Loading…
Cancel
Save