Quellcode durchsuchen

Add starpu_bcsr_filter_canonical_block_get_nchildren

Samuel Thibault vor 4 Jahren
Ursprung
Commit
bb6bd40d0a

+ 1 - 0
ChangeLog

@@ -86,6 +86,7 @@ Small features:
   * Add STARPU_SCHED_SORTED_ABOVE and STARPU_SCHED_SORTED_BELOW environment
     variables.
   * Add STARPU_SCHED_SIMPLE_PRE_DECISION.
+  * Add starpu_bcsr_filter_canonical_block_get_nchildren.
 
 StarPU 1.3.7
 ====================================================================

+ 1 - 6
examples/spmv/dw_block_spmv.c

@@ -119,11 +119,6 @@ void init_problem_callback(void *arg)
 	}
 }
 
-unsigned get_bcsr_nchildren(struct starpu_data_filter *f, starpu_data_handle_t handle)
-{
-  return (unsigned)starpu_bcsr_get_nnz(handle);
-}
-
 void call_filters(void)
 {
 
@@ -131,7 +126,7 @@ void call_filters(void)
 	struct starpu_data_filter vector_in_f, vector_out_f;
 
 	bcsr_f.filter_func    = starpu_bcsr_filter_canonical_block;
-	bcsr_f.get_nchildren = get_bcsr_nchildren;
+	bcsr_f.get_nchildren = starpu_bcsr_filter_canonical_block_get_nchildren;
 	/* the children use a matrix interface ! */
 	bcsr_f.get_child_ops = starpu_bcsr_filter_canonical_block_child_ops;
 

+ 8 - 0
include/starpu_data_filters.h

@@ -314,8 +314,16 @@ void starpu_data_partition_not_automatic(starpu_data_handle_t handle);
    Partition a block-sparse matrix into dense matrices.
    starpu_data_filter::get_child_ops needs to be set to
    starpu_bcsr_filter_canonical_block_child_ops()
+   and starpu_data_filter::get_nchildren set to
+   starpu_bcsr_filter_canonical_block_get_nchildren().
 */
 void starpu_bcsr_filter_canonical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
+
+/**
+   Return the number of children obtained with starpu_bcsr_filter_canonical_block().
+*/
+unsigned starpu_bcsr_filter_canonical_block_get_nchildren(struct starpu_data_filter *f, starpu_data_handle_t handle)
+;
 /**
    Return the child_ops of the partition obtained with starpu_bcsr_filter_canonical_block().
 */

+ 5 - 0
src/datawizard/interfaces/bcsr_filters.c

@@ -91,6 +91,11 @@ void starpu_bcsr_filter_canonical_block(void *father_interface, void *child_inte
 	}
 }
 
+unsigned starpu_bcsr_filter_canonical_block_get_nchildren(struct starpu_data_filter *f, starpu_data_handle_t handle)
+{
+  return (unsigned)starpu_bcsr_get_nnz(handle);
+}
+
 struct starpu_data_interface_ops *starpu_bcsr_filter_canonical_block_child_ops(STARPU_ATTRIBUTE_UNUSED struct starpu_data_filter *f, STARPU_ATTRIBUTE_UNUSED unsigned child)
 {
 	return &starpu_interface_matrix_ops;