Browse Source

The wrapper to allocate pinned memory allocates a generic buffer, not always a
float array.

Cédric Augonnet 16 years ago
parent
commit
c26471c512

+ 3 - 3
examples/mult/dw_mult.c

@@ -166,9 +166,9 @@ static void init_problem_data(void)
 
 #ifdef USE_CUDA
 	if (pin) {
-		starpu_malloc_pinned_if_possible(&A, zdim*ydim*sizeof(float));
-		starpu_malloc_pinned_if_possible(&B, xdim*zdim*sizeof(float));
-		starpu_malloc_pinned_if_possible(&C, xdim*ydim*sizeof(float));
+		starpu_malloc_pinned_if_possible((void **)&A, zdim*ydim*sizeof(float));
+		starpu_malloc_pinned_if_possible((void **)&B, xdim*zdim*sizeof(float));
+		starpu_malloc_pinned_if_possible((void **)&C, xdim*ydim*sizeof(float));
 	} else
 #endif
 	{

+ 3 - 3
examples/mult/dw_mult_no_filters.c

@@ -135,9 +135,9 @@ static void init_problem_data(void)
 
 #ifdef USE_CUDA
 	if (pin) {
-		starpu_malloc_pinned_if_possible(&A, zdim*ydim*sizeof(float));
-		starpu_malloc_pinned_if_possible(&B, xdim*zdim*sizeof(float));
-		starpu_malloc_pinned_if_possible(&C, xdim*ydim*sizeof(float));
+		starpu_malloc_pinned_if_possible((void **)&A, zdim*ydim*sizeof(float));
+		starpu_malloc_pinned_if_possible((void **)&B, xdim*zdim*sizeof(float));
+		starpu_malloc_pinned_if_possible((void **)&C, xdim*ydim*sizeof(float));
 	} else
 #endif
 	{

+ 4 - 4
examples/strassen2/strassen2.c

@@ -158,7 +158,7 @@ starpu_data_handle allocate_tmp_matrix(unsigned size, unsigned reclevel)
 
 #ifdef USE_CUDA
         if (pin) {
-                starpu_malloc_pinned_if_possible(&buffer, size*size*sizeof(float));
+                starpu_malloc_pinned_if_possible((void **)&buffer, size*size*sizeof(float));
         } else
 #endif
         {
@@ -766,9 +766,9 @@ int main(int argc, char **argv)
 
 #ifdef USE_CUDA
         if (pin) {
-                starpu_malloc_pinned_if_possible(&A, size*size*sizeof(float));
-                starpu_malloc_pinned_if_possible(&B, size*size*sizeof(float));
-                starpu_malloc_pinned_if_possible(&C, size*size*sizeof(float));
+                starpu_malloc_pinned_if_possible((void **)&A, size*size*sizeof(float));
+                starpu_malloc_pinned_if_possible((void **)&B, size*size*sizeof(float));
+                starpu_malloc_pinned_if_possible((void **)&C, size*size*sizeof(float));
         } else
 #endif
         {

+ 1 - 1
include/starpu-data.h

@@ -44,6 +44,6 @@ void starpu_advise_if_data_is_important(struct starpu_data_state_t *state, unsig
 void starpu_sync_data_with_mem(struct starpu_data_state_t *state);
 void starpu_notify_data_modification(struct starpu_data_state_t *state, uint32_t modifying_node);
 
-void starpu_malloc_pinned_if_possible(float **A, size_t dim);
+void starpu_malloc_pinned_if_possible(void **A, size_t dim);
 
 #endif // __STARPU_DATA_H__

+ 2 - 2
src/common/malloc.c

@@ -30,7 +30,7 @@
 struct data_interface_s;
 
 struct malloc_pinned_codelet_struct {
-	float **ptr;
+	void **ptr;
 	size_t dim;
 };
 
@@ -42,7 +42,7 @@ static void malloc_pinned_codelet(struct data_interface_s *buffers __attribute__
 }
 #endif
 
-void starpu_malloc_pinned_if_possible(float **A, size_t dim)
+void starpu_malloc_pinned_if_possible(void **A, size_t dim)
 {
 	if (may_submit_cuda_task())
 	{