Sfoglia il codice sorgente

Minor cleanups: we expose the starpu_data_handle opaque type rather than the
starpu_data_state_t structure when possible.

Cédric Augonnet 15 anni fa
parent
commit
fbc16730b4

+ 13 - 15
src/datawizard/copy-driver.h

@@ -39,31 +39,29 @@ typedef union {
 #endif
 } starpu_async_channel;
 
-struct starpu_data_state_t;
-
 struct copy_data_methods_s {
 	/* src type is ram */
-	int (*ram_to_ram)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
-	int (*ram_to_cuda)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
-	int (*ram_to_spu)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
+	int (*ram_to_ram)(starpu_data_handle handle, uint32_t src, uint32_t dst);
+	int (*ram_to_cuda)(starpu_data_handle handle, uint32_t src, uint32_t dst);
+	int (*ram_to_spu)(starpu_data_handle handle, uint32_t src, uint32_t dst);
 
 	/* src type is cuda */
-	int (*cuda_to_ram)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
-	int (*cuda_to_cuda)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
-	int (*cuda_to_spu)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
+	int (*cuda_to_ram)(starpu_data_handle handle, uint32_t src, uint32_t dst);
+	int (*cuda_to_cuda)(starpu_data_handle handle, uint32_t src, uint32_t dst);
+	int (*cuda_to_spu)(starpu_data_handle handle, uint32_t src, uint32_t dst);
 
 	/* src type is spu */
-	int (*spu_to_ram)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
-	int (*spu_to_cuda)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
-	int (*spu_to_spu)(struct starpu_data_state_t *state, uint32_t src, uint32_t dst);
+	int (*spu_to_ram)(starpu_data_handle handle, uint32_t src, uint32_t dst);
+	int (*spu_to_cuda)(starpu_data_handle handle, uint32_t src, uint32_t dst);
+	int (*spu_to_spu)(starpu_data_handle handle, uint32_t src, uint32_t dst);
 
 #ifdef USE_CUDA
 	/* for asynchronous CUDA transfers */
-	int (*ram_to_cuda_async)(struct starpu_data_state_t *state, uint32_t src,
+	int (*ram_to_cuda_async)(starpu_data_handle handle, uint32_t src,
 					uint32_t dst, cudaStream_t *stream);
-	int (*cuda_to_ram_async)(struct starpu_data_state_t *state, uint32_t src,
+	int (*cuda_to_ram_async)(starpu_data_handle handle, uint32_t src,
 					uint32_t dst, cudaStream_t *stream);
-	int (*cuda_to_cuda_async)(struct starpu_data_state_t *state, uint32_t src,
+	int (*cuda_to_cuda_async)(starpu_data_handle handle, uint32_t src,
 					uint32_t dst, cudaStream_t *stream);
 #endif
 };
@@ -72,7 +70,7 @@ void wake_all_blocked_workers(void);
 void wake_all_blocked_workers_on_node(unsigned nodeid);
 
 __attribute__((warn_unused_result))
-int driver_copy_data_1_to_1(struct starpu_data_state_t *state, uint32_t node, 
+int driver_copy_data_1_to_1(starpu_data_handle handle, uint32_t node, 
 		uint32_t requesting_node, unsigned donotread, struct data_request_s *req, unsigned may_allloc);
 
 unsigned driver_test_request_completion(starpu_async_channel *async_channel, unsigned handling_node);

+ 1 - 1
src/datawizard/hierarchy.h

@@ -23,6 +23,6 @@
 
 #include <starpu.h>
 
-void register_new_data(struct starpu_data_state_t *state, uint32_t home_node, uint32_t wb_mask);
+void register_new_data(starpu_data_handle handle, uint32_t home_node, uint32_t wb_mask);
 
 #endif

+ 4 - 8
src/datawizard/interfaces/data_interface.h

@@ -26,18 +26,14 @@
 #include <gordon.h>
 #endif
 
-
-struct starpu_data_state_t;
-
 struct data_interface_ops_t {
-	size_t (*allocate_data_on_node)(struct starpu_data_state_t *state,
-					uint32_t node);
+	size_t (*allocate_data_on_node)(starpu_data_handle handle, uint32_t node);
 	void (*liberate_data_on_node)(starpu_data_interface_t *interface,
 					uint32_t node);
 	const struct copy_data_methods_s *copy_methods;
-	size_t (*get_size)(struct starpu_data_state_t *state);
-	uint32_t (*footprint)(struct starpu_data_state_t *state, uint32_t hstate);
-	void (*display)(struct starpu_data_state_t *state, FILE *f);
+	size_t (*get_size)(starpu_data_handle handle);
+	uint32_t (*footprint)(starpu_data_handle handle, uint32_t hstate);
+	void (*display)(starpu_data_handle handle, FILE *f);
 #ifdef USE_GORDON
 	int (*convert_to_gordon)(starpu_data_interface_t *interface, uint64_t *ptr, gordon_strideSize_t *ss); 
 #endif

+ 6 - 5
src/datawizard/memalloc.h

@@ -17,16 +17,17 @@
 #ifndef __MEMALLOC_H__
 #define __MEMALLOC_H__
 
+#include <starpu.h>
+#include <common/config.h>
+
 #include <common/list.h>
 #include <datawizard/interfaces/data_interface.h>
 #include <datawizard/coherency.h>
 #include <datawizard/copy-driver.h>
 #include <datawizard/progress.h>
 
-struct starpu_data_state_t;
-
 LIST_TYPE(mem_chunk,
-	struct starpu_data_state_t *data;
+	starpu_data_handle data;
 	size_t size;
 
 	uint32_t footprint;
@@ -45,7 +46,7 @@ LIST_TYPE(mem_chunk,
 
 void init_mem_chunk_lists(void);
 void deinit_mem_chunk_lists(void);
-void request_mem_chunk_removal(struct starpu_data_state_t *state, unsigned node);
-int allocate_memory_on_node(struct starpu_data_state_t *state, uint32_t dst_node, unsigned may_alloc);
+void request_mem_chunk_removal(starpu_data_handle handle, unsigned node);
+int allocate_memory_on_node(starpu_data_handle handle, uint32_t dst_node, unsigned may_alloc);
 
 #endif

+ 0 - 2
src/datawizard/memory_nodes.h

@@ -46,8 +46,6 @@ typedef struct {
 	unsigned queues_count[MAXNODES];
 } mem_node_descr;
 
-struct starpu_data_state_t;
-
 void init_memory_nodes(void);
 void deinit_memory_nodes(void);
 void set_local_memory_node_key(unsigned *node);