ソースを参照

bcsr: show a partitioning with a piece with no non-zero

Samuel Thibault 5 年 前
コミット
32921881a7
共有1 個のファイルを変更した11 個の追加7 個の削除を含む
  1. 11 7
      tests/datawizard/bcsr.c

+ 11 - 7
tests/datawizard/bcsr.c

@@ -39,7 +39,7 @@ void cpu_show_bcsr(void *descr[], void *arg)
 
 	STARPU_PTHREAD_MUTEX_LOCK(&mutex);
 
-	printf("nnz %d elemsize %d\n", nnz, elemsize);
+	printf("\nnnz %d elemsize %d\n", nnz, elemsize);
 
 	for (i = 0; i < nrow; i++)
 	{
@@ -81,11 +81,13 @@ struct starpu_codelet show_cl =
  *   |  2   3   0   0 |
  *   |  4   5   8   9 |
  *   |  6   7  10  11 |
+ *   |  0   0   0   0 |
+ *   |  0   0   0   0 |
  *   +----------------+
  *
  * nzval  = [0, 1, 2, 3] ++ [4, 5, 6, 7] ++ [8, 9, 10, 11]
- * colind = [0, 0, 1]
- * rowptr = [0, 1, 3 ]
+ * colind = [0, 0, 1] (column index of each non-zero block)
+ * rowptr = [0, 1, 3] (index of first non-zero block for each row)
  * r = c = 2
  */
 
@@ -93,10 +95,10 @@ struct starpu_codelet show_cl =
 #define R              2
 #define C              2
 
-#define NNZ_BLOCKS     3   /* out of 4 */
+#define NNZ_BLOCKS     3   /* out of 6 */
 #define NZVAL_SIZE     (R*C*NNZ_BLOCKS)
 
-#define NROWS          2
+#define NROWS          3
 
 static int nzval[NZVAL_SIZE]  =
 {
@@ -106,7 +108,7 @@ static int nzval[NZVAL_SIZE]  =
 };
 static uint32_t colind[NNZ_BLOCKS] = { 0, 0, 1 };
 
-static uint32_t rowptr[NROWS+1] = { 0, 1, NNZ_BLOCKS };
+static uint32_t rowptr[NROWS+1] = { 0, 1, NNZ_BLOCKS, NNZ_BLOCKS };
 
 int main(int argc, char **argv)
 {
@@ -138,12 +140,14 @@ int main(int argc, char **argv)
 	struct starpu_data_filter filter =
 	{
 		.filter_func = starpu_bcsr_filter_vertical_block,
-		.nchildren = 2,
+		.nchildren = 3,
 	};
 	starpu_data_partition(bcsr_handle, &filter);
 
 	starpu_task_insert(&show_cl, STARPU_R, starpu_data_get_sub_data(bcsr_handle, 1, 0), 0);
 	starpu_task_insert(&show_cl, STARPU_R, starpu_data_get_sub_data(bcsr_handle, 1, 1), 0);
+	starpu_task_insert(&show_cl, STARPU_R, starpu_data_get_sub_data(bcsr_handle, 1, 2), 0);
+
 	starpu_data_unpartition(bcsr_handle, STARPU_MAIN_RAM);
 
 	starpu_data_unregister(bcsr_handle);