void magma_insert_dsetmatrix(magma_int_t m, magma_int_t nb, double *A_src, magma_int_t LDA, double *dA_dst, magma_int_t dA_LD) { Schedule_Task_Flags task_flags = Schedule_Task_Flags_Initializer; schedule_Task_Flag_Set(&task_flags, TASK_PRIORITY, current_priority); //schedule_Task_Flag_Set(&task_flags, TASK_LOCK_TO_THREAD_MASK, (intptr_t) str_thread_communication_mask); // schedule_Task_Flag_Set (&task_flags, THREAD_SET_TO MANUAL_SCHEDULING, 1 ) ; schedule_Task_Flag_Set (&task_flags, TASK_LOCK_TO_THREAD, 1 ) ; schedule_Task_Flag_Set(&task_flags, TASK_LABEL, (intptr_t)"gpu_setmatrix"); schedule_Task_Flag_Set(&task_flags, TASK_COLOR, (intptr_t)"blue"); schedule_Insert_Task(sched_obj, magma_task_dsetmatrix, &task_flags, sizeof(magma_int_t), &m, VALUE, sizeof(magma_int_t), &nb, VALUE, sizeof(double)*LDA*nb, A_src, INPUT, sizeof(magma_int_t), &LDA, VALUE, sizeof(double)*dA_LD*nb, dA_dst, OUTPUT, sizeof(magma_int_t), &dA_LD, VALUE, 0); //schedule_insert_setpanel(A_m, nb, A(0,K), A_LD, dA(0,K), dA_LD) }
void magma_insert_core_dtslu(magma_int_t m, magma_int_t n, double *A, magma_int_t LDA, magma_int_t *ipiv, magma_int_t *info, magma_int_t num_threads, void *colptr) { magma_int_t min_mn; min_mn = min(m,n); /*QUARK_CORE_zgetrf_reclap(...)*/ Schedule_Task_Flags task_flags = Schedule_Task_Flags_Initializer; //printf("m:%d, n:%d, Pr:%d\n",m,n,panel_thread_count); schedule_Task_Flag_Set(&task_flags, TASK_THREAD_COUNT, num_threads); schedule_Task_Flag_Set(&task_flags, TASK_PRIORITY, current_priority);//schedule_TASK_MAX_PRIORITY - k //schedule_Task_Flag_Set(&task_flags, TASK_LOCK_TO_THREAD_MASK, (intptr_t) str_panel_mask); schedule_Task_Flag_Set(&task_flags, TASK_LOCK_TO_THREAD_MASK, (intptr_t) str_thread_computation_but_master_mask); schedule_Task_Flag_Set(&task_flags, TASK_LABEL, (intptr_t)"cpu_dtslu"); schedule_Task_Flag_Set(&task_flags, TASK_COLOR, (intptr_t)"red"); schedule_Insert_Task(sched_obj, magma_task_core_dtslu, &task_flags, sizeof(int), &m, VALUE, sizeof(int), &n, VALUE, //sizeof(double)*nb*nb, A, INOUT, sizeof(double)*LDA*n, A, INOUT, sizeof(int), &LDA, VALUE, sizeof(int)*min_mn, ipiv, OUTPUT, sizeof(int), info, VALUE, sizeof(int), &num_threads, VALUE, /*dependency on the column that the panel write*/ sizeof(void *), colptr, INOUT, 0); }
void magma_insert_dev_dfree_pinned(magma_int_t deviceID, double *A, void *A_dep_ptr) { Schedule_Task_Flags task_flags = Schedule_Task_Flags_Initializer; schedule_Task_Flag_Set(&task_flags, TASK_PRIORITY, current_priority); // schedule_Task_Flag_Set(&task_flags, TASK_LOCK_TO_THREAD_MASK, (intptr_t) str_master_excluded_mask); // schedule_Task_Flag_Set (&task_flags, THREAD_SET_TO MANUAL_SCHEDULING, 1 ) ; //schedule_Task_Flag_Set (&task_flags, TASK_LOCK_TO_THREAD, 1 ) ; schedule_Task_Flag_Set (&task_flags, TASK_LOCK_TO_THREAD, (deviceID+1) ) ; schedule_Task_Flag_Set(&task_flags, TASK_LABEL, (intptr_t)"gpu_dfree_pinned"); schedule_Task_Flag_Set(&task_flags, TASK_COLOR, (intptr_t)"blue"); schedule_Insert_Task(sched_obj, magma_task_dev_dfree_pinned, &task_flags, ///sizeof(double**), A, OUTPUT,//*size sizeof(magma_int_t), &deviceID,VALUE, sizeof(double*), A, INOUT,//*size //dependency to set after the allocation is completed sizeof(void *), A_dep_ptr, INOUT, 0); //magma_dmalloc_pinned(A, size); }
void magma_insert_dev_dgetmatrix(magma_int_t deviceID, magma_int_t m, magma_int_t nb, double *dA_src, magma_int_t dA_LD, double *A_dst, magma_int_t LDA) { Schedule_Task_Flags task_flags = Schedule_Task_Flags_Initializer; schedule_Task_Flag_Set(&task_flags, TASK_PRIORITY, current_priority); //schedule_Task_Flag_Set(&task_flags, TASK_LOCK_TO_THREAD_MASK, (intptr_t) str_master_excluded_mask); //schedule_Task_Flag_Set (&task_flags, TASK_LOCK_TO_THREAD, 1 ) ; schedule_Task_Flag_Set (&task_flags, TASK_LOCK_TO_THREAD, (deviceID+1) ) ; schedule_Task_Flag_Set(&task_flags, TASK_LABEL, (intptr_t)"gpu_getmatrix"); schedule_Task_Flag_Set(&task_flags, TASK_COLOR, (intptr_t)"indigo"); schedule_Insert_Task(sched_obj, magma_task_dev_dgetmatrix, &task_flags, sizeof(magma_int_t), &deviceID,VALUE, sizeof(magma_int_t), &m, VALUE, sizeof(magma_int_t), &nb, VALUE, sizeof(double)*dA_LD*nb, dA_src, INPUT, sizeof(magma_int_t), &dA_LD, VALUE, sizeof(double)*LDA*nb, A_dst, OUTPUT, sizeof(magma_int_t), &LDA, VALUE, 0); // schedule_insert_getpanel(gpu_nrows, ncols, dAT(K,K+A_N), dAT_LD, A(K,K+A_N), A_LD); }