|
@@ -54,6 +54,13 @@ starpu_data_handle_t vector_handle;
|
|
starpu_vector_data_register(&vector_handle, STARPU_MAIN_RAM, (uintptr_t)vector, NX, sizeof(vector[0]));
|
|
starpu_vector_data_register(&vector_handle, STARPU_MAIN_RAM, (uintptr_t)vector, NX, sizeof(vector[0]));
|
|
\endcode
|
|
\endcode
|
|
|
|
|
|
|
|
+Vectors can be partitioned into pieces by using
|
|
|
|
+starpu_vector_filter_block(). They can also be partitioned with some overlapping
|
|
|
|
+by using starpu_vector_filter_block_shadow(). By default StarPU
|
|
|
|
+uses the same size for each piece. If different sizes are desired,
|
|
|
|
+starpu_vector_filter_list() or starpu_vector_filter_list_long() can be used
|
|
|
|
+instead. To just divide in two pieces, starpu_vector_filter_divide_in_2() can be used.
|
|
|
|
+
|
|
\subsection MatrixDataInterface Matrix Data Interface
|
|
\subsection MatrixDataInterface Matrix Data Interface
|
|
|
|
|
|
To register 2-D matrices with a potential padding, one can use the
|
|
To register 2-D matrices with a potential padding, one can use the
|
|
@@ -67,9 +74,15 @@ matrix = (float*)malloc(width * height * sizeof(float));
|
|
starpu_matrix_data_register(&matrix_handle, STARPU_MAIN_RAM, (uintptr_t)matrix, width, width, height, sizeof(float));
|
|
starpu_matrix_data_register(&matrix_handle, STARPU_MAIN_RAM, (uintptr_t)matrix, width, width, height, sizeof(float));
|
|
\endcode
|
|
\endcode
|
|
|
|
|
|
|
|
+2D matrices can be partitioned into 2D matrices along the x dimension by
|
|
|
|
+using starpu_matrix_filter_block(), and along the y dimension by using
|
|
|
|
+starpu_matrix_filter_vertical_block(). They can also be partitioned
|
|
|
|
+with some overlapping by using starpu_matrix_filter_block_shadow() and
|
|
|
|
+starpu_matrix_filter_vertical_block_shadow().
|
|
|
|
+
|
|
\subsection BlockDataInterface Block Data Interface
|
|
\subsection BlockDataInterface Block Data Interface
|
|
|
|
|
|
-To register 3-D blocks with potential paddings on Y and Z dimensions,
|
|
|
|
|
|
+To register 3-D matrices with potential paddings on Y and Z dimensions,
|
|
one can use the block data interface. Here an example of how to
|
|
one can use the block data interface. Here an example of how to
|
|
register a block data to StarPU by using starpu_block_data_register().
|
|
register a block data to StarPU by using starpu_block_data_register().
|
|
|
|
|
|
@@ -80,6 +93,14 @@ block = (float*)malloc(nx*ny*nz*sizeof(float));
|
|
starpu_block_data_register(&block_handle, STARPU_MAIN_RAM, (uintptr_t)block, nx, nx*ny, nx, ny, nz, sizeof(float));
|
|
starpu_block_data_register(&block_handle, STARPU_MAIN_RAM, (uintptr_t)block, nx, nx*ny, nx, ny, nz, sizeof(float));
|
|
\endcode
|
|
\endcode
|
|
|
|
|
|
|
|
+3D matrices can be partitioned along the x dimension by
|
|
|
|
+using starpu_block_filter_block(), or along the y dimension
|
|
|
|
+by using starpu_block_filter_vertical_block, or along the
|
|
|
|
+z dimension by using starpu_block_filter_depth_block. They
|
|
|
|
+can also be partitioned with some overlapping by using
|
|
|
|
+starpu_block_filter_block_shadow(), starpu_block_filter_vertical_block_shadow(),
|
|
|
|
+or starpu_block_filter_depth_block_shadow().
|
|
|
|
+
|
|
\subsection BCSRDataInterface BCSR Data Interface
|
|
\subsection BCSRDataInterface BCSR Data Interface
|
|
|
|
|
|
BCSR (Blocked Compressed Sparse Row Representation) sparse matrix data
|
|
BCSR (Blocked Compressed Sparse Row Representation) sparse matrix data
|
|
@@ -147,10 +168,16 @@ starpu_bcsr_data_register(&bcsr_handle,
|
|
StarPU provides an example on how to deal with such matrices in
|
|
StarPU provides an example on how to deal with such matrices in
|
|
<c>examples/spmv</c>.
|
|
<c>examples/spmv</c>.
|
|
|
|
|
|
|
|
+BCSR data handles can be partitioned into its dense matrix blocks by using
|
|
|
|
+starpu_bcsr_filter_canonical_block().
|
|
|
|
+
|
|
\subsection CSRDataInterface CSR Data Interface
|
|
\subsection CSRDataInterface CSR Data Interface
|
|
|
|
|
|
TODO
|
|
TODO
|
|
|
|
|
|
|
|
+CSR data handles can be partitioned into vertical CSR matrices by using
|
|
|
|
+starpu_csr_filter_vertical_block().
|
|
|
|
+
|
|
\subsection VariableSizeDataInterface Data Interface with Variable Size
|
|
\subsection VariableSizeDataInterface Data Interface with Variable Size
|
|
|
|
|
|
Tasks are actually allowed to change the size of data interfaces.
|
|
Tasks are actually allowed to change the size of data interfaces.
|