Example #1
0
  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)
 }
Example #2
0
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);

}
Example #3
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);
      
 }
Example #4
0
 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);
 }