unsigned int pocl_hsa_probe(struct pocl_device_ops *ops) { int env_count = pocl_device_get_env_count(ops->device_name); POCL_MSG_PRINT_INFO("pocl-hsa: found %d env devices with %s.\n", env_count, ops->device_name); /* No hsa env specified, the user did not request for HSA agents. */ if (env_count <= 0) return 0; if (hsa_init() != HSA_STATUS_SUCCESS) { POCL_ABORT("pocl-hsa: hsa_init() failed."); } if (hsa_iterate_agents(pocl_hsa_get_agents, NULL) != HSA_STATUS_SUCCESS) { assert (0 && "pocl-hsa: could not get agents."); } POCL_MSG_PRINT_INFO("pocl-hsa: found %d agents.\n", found_hsa_agents); return found_hsa_agents; }
unsigned int pocl_basic_probe(struct pocl_device_ops *ops) { int env_count = pocl_device_get_env_count(ops->device_name); /* No env specified, so pthread will be used instead of basic */ if(env_count < 0) return 0; return env_count; }
unsigned int pocl_cuda_probe (struct pocl_device_ops *ops) { int env_count = pocl_device_get_env_count (ops->device_name); // TODO: Check how many CUDA device available (if any) if (env_count < 0) return 1; return env_count; }