Samuel Thibault 5 år sedan
förälder
incheckning
2c7b2e2140
3 ändrade filer med 9 tillägg och 6 borttagningar
  1. 1 1
      src/core/perfmodel/perfmodel.h
  2. 2 2
      src/core/perfmodel/perfmodel_bus.c
  3. 6 3
      src/core/topology.c

+ 1 - 1
src/core/perfmodel/perfmodel.h

@@ -90,7 +90,7 @@ void _starpu_set_calibrate_flag(unsigned val);
 unsigned _starpu_get_calibrate_flag(void);
 
 #if defined(STARPU_USE_FPGA)
-int *_starpu_get_fpga_affinity_vector(unsigned fpgaid);
+unsigned *_starpu_get_fpga_affinity_vector(unsigned fpgaid);
 #endif
 
 #if defined(STARPU_USE_CUDA)

+ 2 - 2
src/core/perfmodel/perfmodel_bus.c

@@ -120,7 +120,7 @@ static uint64_t opencl_size[STARPU_MAXCUDADEVS];
 
 #ifdef STARPU_USE_FPGA
 /* preference order of cores (logical indexes) */
-static int fpga_affinity_matrix[STARPU_MAXFPGADEVS][STARPU_MAXCPUS];
+static unsigned fpga_affinity_matrix[STARPU_MAXFPGADEVS][STARPU_MAXCPUS];
 static double fpgadev_timing_htod[STARPU_MAXNODES] = {0.0};
 static double fpgadev_latency_htod[STARPU_MAXNODES] = {0.0};
 static double fpgadev_timing_dtoh[STARPU_MAXNODES] = {0.0};
@@ -1118,7 +1118,7 @@ unsigned *_starpu_get_cuda_affinity_vector(unsigned gpuid)
 #endif /* STARPU_USE_CUDA */
 
 #ifdef STARPU_USE_FPGA
-int *_starpu_get_fpga_affinity_vector(unsigned fpgaid)
+unsigned *_starpu_get_fpga_affinity_vector(unsigned fpgaid)
 {
         return fpga_affinity_matrix[fpgaid];
 }

+ 6 - 3
src/core/topology.c

@@ -3102,9 +3102,12 @@ int _starpu_build_topology(struct _starpu_machine_config *config, int no_mp_conf
 					config->cuda_nodeid = -2;
 				break;
 
-                        //case STARPU_FPGA_WORKER:
-					//config->fpga_nodeid = -2;
-                                  //break;
+                        case STARPU_FPGA_WORKER:
+				if (config->fpga_nodeid == -1)
+					config->fpga_nodeid = starpu_worker_get_memory_node(i);
+				else if (config->fpga_nodeid != (int) starpu_worker_get_memory_node(i))
+					config->fpga_nodeid = -2;
+				break;
 			case STARPU_OPENCL_WORKER:
 				if (config->opencl_nodeid == -1)
 					config->opencl_nodeid = starpu_worker_get_memory_node(i);