Browse Source

Avoid using deprecated hwloc functions

Samuel Thibault 7 years ago
parent
commit
e4734aeb45
2 changed files with 20 additions and 0 deletions
  1. 16 0
      src/core/perfmodel/perfmodel_bus.c
  2. 4 0
      src/datawizard/malloc.c

+ 16 - 0
src/core/perfmodel/perfmodel_bus.c

@@ -185,7 +185,11 @@ static void measure_bandwidth_between_host_and_dev_on_numa_with_cuda(int dev, in
 	{
 		/* NUMA mode activated */
 		hwloc_obj_t obj = hwloc_get_obj_by_type(hwtopology, HWLOC_OBJ_NODE, numa);
+#if HWLOC_API_VERSION >= 0x00020000
+		h_buffer = hwloc_alloc_membind(hwtopology, size, obj->nodeset, HWLOC_MEMBIND_BIND, HWLOC_MEMBIND_BYNODESET);
+#else
 		h_buffer = hwloc_alloc_membind_nodeset(hwtopology, size, obj->nodeset, HWLOC_MEMBIND_BIND, 0);
+#endif
 	}
 	else
 #endif
@@ -446,7 +450,11 @@ static void measure_bandwidth_between_host_and_dev_on_numa_with_opencl(int dev,
 	{
 		/* NUMA mode activated */
 		hwloc_obj_t obj = hwloc_get_obj_by_type(hwtopology, HWLOC_OBJ_NODE, numa);
+#if HWLOC_API_VERSION >= 0x00020000
+		h_buffer = hwloc_alloc_membind(hwtopology, size, obj->nodeset, HWLOC_MEMBIND_BIND, HWLOC_MEMBIND_BYNODESET);
+#else
 		h_buffer = hwloc_alloc_membind_nodeset(hwtopology, size, obj->nodeset, HWLOC_MEMBIND_BIND, 0);
+#endif
 	}
 	else
 #endif
@@ -678,11 +686,19 @@ static void measure_bandwidth_latency_between_numa(int numa_src, int numa_dst)
 
 		unsigned char *h_buffer;
 		hwloc_obj_t obj_src = hwloc_get_obj_by_type(hwtopology, HWLOC_OBJ_NODE, numa_src);
+#if HWLOC_API_VERSION >= 0x00020000
+		h_buffer = hwloc_alloc_membind(hwtopology, SIZE, obj_src->nodeset, HWLOC_MEMBIND_BIND, HWLOC_MEMBIND_BYNODESET);
+#else
 		h_buffer = hwloc_alloc_membind_nodeset(hwtopology, SIZE, obj_src->nodeset, HWLOC_MEMBIND_BIND, 0);
+#endif
 
 		unsigned char *d_buffer;
 		hwloc_obj_t obj_dst = hwloc_get_obj_by_type(hwtopology, HWLOC_OBJ_NODE, numa_dst);
+#if HWLOC_API_VERSION >= 0x00020000
+		d_buffer = hwloc_alloc_membind(hwtopology, SIZE, obj_dst->nodeset, HWLOC_MEMBIND_BIND, HWLOC_MEMBIND_BYNODESET);
+#else
 		d_buffer = hwloc_alloc_membind_nodeset(hwtopology, SIZE, obj_dst->nodeset, HWLOC_MEMBIND_BIND, 0);
+#endif
 
 		memset(h_buffer, 0, SIZE);
 

+ 4 - 0
src/datawizard/malloc.c

@@ -312,7 +312,11 @@ int _starpu_malloc_flags_on_node(unsigned dst_node, void **A, size_t dim, int fl
 		hwloc_topology_t hwtopology = config->topology.hwtopology;
 		hwloc_obj_t numa_node_obj = hwloc_get_obj_by_type(hwtopology, HWLOC_OBJ_NODE, starpu_memory_nodes_numa_id_to_hwloclogid(dst_node));
 		hwloc_bitmap_t nodeset = numa_node_obj->nodeset;
+#if HWLOC_API_VERSION >= 0x00020000
+		*A = hwloc_alloc_membind(hwtopology, dim, nodeset, HWLOC_MEMBIND_BIND | HWLOC_MEMBIND_NOCPUBIND, flags | HWLOC_MEMBIND_BYNODESET);
+#else
 		*A = hwloc_alloc_membind_nodeset(hwtopology, dim, nodeset, HWLOC_MEMBIND_BIND | HWLOC_MEMBIND_NOCPUBIND, flags);
+#endif
 		//fprintf(stderr, "Allocation %lu bytes on NUMA node %d [%p]\n", (unsigned long) dim, starpu_memnode_get_numaphysid(dst_node), *A);
 		if (!*A)
 			ret = -ENOMEM;