cl_getplatformids.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /* StarPU --- Runtime system for heterogeneous multicore architectures.
  2. *
  3. * Copyright (C) 2010,2011 University of Bordeaux
  4. *
  5. * StarPU is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU Lesser General Public License as published by
  7. * the Free Software Foundation; either version 2.1 of the License, or (at
  8. * your option) any later version.
  9. *
  10. * StarPU is distributed in the hope that it will be useful, but
  11. * WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. *
  14. * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  15. */
  16. #include "socl.h"
  17. /**
  18. * \brief Get StarPU platform ID
  19. */
  20. CL_API_ENTRY cl_int CL_API_CALL
  21. soclGetPlatformIDs(cl_uint num_entries,
  22. cl_platform_id * platforms,
  23. cl_uint * num_platforms) CL_API_SUFFIX__VERSION_1_0
  24. {
  25. if ((num_entries == 0 && platforms != NULL)
  26. || (num_platforms == NULL && platforms == NULL))
  27. return CL_INVALID_VALUE;
  28. if (starpu_opencl_worker_get_count() == 0) {
  29. DEBUG_ERROR("StarPU didn't find any OpenCL device. Try disabling CUDA support in StarPU (export STARPU_NCUDA=0).")
  30. if (num_platforms != NULL)
  31. *num_platforms = 0;
  32. }
  33. else {
  34. if (platforms != NULL)
  35. platforms[0] = &socl_platform;
  36. if (num_platforms != NULL)
  37. *num_platforms = 1;
  38. }
  39. return CL_SUCCESS;
  40. }