mkl_vsl_omp_offload.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. /*******************************************************************************
  2. * Copyright 2020-2022 Intel Corporation.
  3. *
  4. * This software and the related documents are Intel copyrighted materials, and
  5. * your use of them is governed by the express license under which they were
  6. * provided to you (License). Unless the License provides otherwise, you may not
  7. * use, modify, copy, publish, distribute, disclose or transmit this software or
  8. * the related documents without Intel's prior written permission.
  9. *
  10. * This software and the related documents are provided as is, with no express
  11. * or implied warranties, other than those that are expressly stated in the
  12. * License.
  13. *******************************************************************************/
  14. /*
  15. ! Content:
  16. ! Intel(R) oneAPI Math Kernel Library (oneMKL) for OpenMP compiler offload
  17. ! interface
  18. !******************************************************************************/
  19. #ifndef _MKL_VSL_OMP_OFFLOAD_H_
  20. #define _MKL_VSL_OMP_OFFLOAD_H_
  21. #if (_OPENMP >= 202011)
  22. #include <omp.h>
  23. #endif
  24. #include "mkl_vsl_types.h"
  25. #include "mkl_vsl_omp_variant.h"
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif /* __cplusplus */
  29. #if (_OPENMP >= 202011)
  30. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngUniform)) match(construct={dispatch}, device={arch(gen)}) \
  31. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  32. adjust_args(need_device_ptr:r)
  33. #endif
  34. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngUniform)) match(construct={target variant dispatch}, device={arch(gen)})
  35. int vsRngUniform(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float a, const float b) NOTHROW;
  36. #if (_OPENMP >= 202011)
  37. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngUniform)) match(construct={dispatch}, device={arch(gen)}) \
  38. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  39. adjust_args(need_device_ptr:r)
  40. #endif
  41. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngUniform)) match(construct={target variant dispatch}, device={arch(gen)})
  42. int vdRngUniform(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double a, const double b) NOTHROW;
  43. #if (_OPENMP >= 202011)
  44. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngUniform)) match(construct={dispatch}, device={arch(gen)}) \
  45. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  46. adjust_args(need_device_ptr:r)
  47. #endif
  48. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngUniform)) match(construct={target variant dispatch}, device={arch(gen)})
  49. int viRngUniform(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const int a, const int b) NOTHROW;
  50. #if (_OPENMP >= 202011)
  51. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngGaussian)) match(construct={dispatch}, device={arch(gen)}) \
  52. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  53. adjust_args(need_device_ptr:r)
  54. #endif
  55. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngGaussian)) match(construct={target variant dispatch}, device={arch(gen)})
  56. int vsRngGaussian(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float mean, const float stddev) NOTHROW;
  57. #if (_OPENMP >= 202011)
  58. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngGaussian)) match(construct={dispatch}, device={arch(gen)}) \
  59. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  60. adjust_args(need_device_ptr:r)
  61. #endif
  62. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngGaussian)) match(construct={target variant dispatch}, device={arch(gen)})
  63. int vdRngGaussian(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double mean, const double stddev) NOTHROW;
  64. #if (_OPENMP >= 202011)
  65. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngGaussianMV)) match(construct={dispatch}, device={arch(gen)}) \
  66. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  67. adjust_args(need_device_ptr:r)
  68. #endif
  69. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngGaussianMV)) match(construct={target variant dispatch}, device={arch(gen)})
  70. int vsRngGaussianMV(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const MKL_INT dimen, const MKL_INT mstorage, const float* a, const float* t) NOTHROW;
  71. #if (_OPENMP >= 202011)
  72. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngGaussianMV)) match(construct={dispatch}, device={arch(gen)}) \
  73. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  74. adjust_args(need_device_ptr:r)
  75. #endif
  76. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngGaussianMV)) match(construct={target variant dispatch}, device={arch(gen)})
  77. int vdRngGaussianMV(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const MKL_INT dimen, const MKL_INT mstorage, const double* a, const double* t) NOTHROW;
  78. #if (_OPENMP >= 202011)
  79. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngLognormal)) match(construct={dispatch}, device={arch(gen)}) \
  80. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  81. adjust_args(need_device_ptr:r)
  82. #endif
  83. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngLognormal)) match(construct={target variant dispatch}, device={arch(gen)})
  84. int vsRngLognormal(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float mean, const float stddev, const float displ, const float scale) NOTHROW;
  85. #if (_OPENMP >= 202011)
  86. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngLognormal)) match(construct={dispatch}, device={arch(gen)}) \
  87. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  88. adjust_args(need_device_ptr:r)
  89. #endif
  90. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngLognormal)) match(construct={target variant dispatch}, device={arch(gen)})
  91. int vdRngLognormal(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double mean, const double stddev, const double displ, const double scale) NOTHROW;
  92. #if (_OPENMP >= 202011)
  93. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngCauchy)) match(construct={dispatch}, device={arch(gen)}) \
  94. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  95. adjust_args(need_device_ptr:r)
  96. #endif
  97. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngCauchy)) match(construct={target variant dispatch}, device={arch(gen)})
  98. int vsRngCauchy(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float a, const float b) NOTHROW;
  99. #if (_OPENMP >= 202011)
  100. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngCauchy)) match(construct={dispatch}, device={arch(gen)}) \
  101. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  102. adjust_args(need_device_ptr:r)
  103. #endif
  104. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngCauchy)) match(construct={target variant dispatch}, device={arch(gen)})
  105. int vdRngCauchy(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double a, const double b) NOTHROW;
  106. #if (_OPENMP >= 202011)
  107. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngExponential)) match(construct={dispatch}, device={arch(gen)}) \
  108. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  109. adjust_args(need_device_ptr:r)
  110. #endif
  111. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngExponential)) match(construct={target variant dispatch}, device={arch(gen)})
  112. int vsRngExponential(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float a, const float b) NOTHROW;
  113. #if (_OPENMP >= 202011)
  114. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngExponential)) match(construct={dispatch}, device={arch(gen)}) \
  115. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  116. adjust_args(need_device_ptr:r)
  117. #endif
  118. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngExponential)) match(construct={target variant dispatch}, device={arch(gen)})
  119. int vdRngExponential(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double a, const double b) NOTHROW;
  120. #if (_OPENMP >= 202011)
  121. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngGumbel)) match(construct={dispatch}, device={arch(gen)}) \
  122. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  123. adjust_args(need_device_ptr:r)
  124. #endif
  125. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngGumbel)) match(construct={target variant dispatch}, device={arch(gen)})
  126. int vsRngGumbel(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float a, const float b) NOTHROW;
  127. #if (_OPENMP >= 202011)
  128. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngGumbel)) match(construct={dispatch}, device={arch(gen)}) \
  129. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  130. adjust_args(need_device_ptr:r)
  131. #endif
  132. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngGumbel)) match(construct={target variant dispatch}, device={arch(gen)})
  133. int vdRngGumbel(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double a, const double b) NOTHROW;
  134. #if (_OPENMP >= 202011)
  135. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngLaplace)) match(construct={dispatch}, device={arch(gen)}) \
  136. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  137. adjust_args(need_device_ptr:r)
  138. #endif
  139. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngLaplace)) match(construct={target variant dispatch}, device={arch(gen)})
  140. int vsRngLaplace(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float a, const float b) NOTHROW;
  141. #if (_OPENMP >= 202011)
  142. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngLaplace)) match(construct={dispatch}, device={arch(gen)}) \
  143. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  144. adjust_args(need_device_ptr:r)
  145. #endif
  146. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngLaplace)) match(construct={target variant dispatch}, device={arch(gen)})
  147. int vdRngLaplace(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double a, const double b) NOTHROW;
  148. #if (_OPENMP >= 202011)
  149. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngRayleigh)) match(construct={dispatch}, device={arch(gen)}) \
  150. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  151. adjust_args(need_device_ptr:r)
  152. #endif
  153. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngRayleigh)) match(construct={target variant dispatch}, device={arch(gen)})
  154. int vsRngRayleigh(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float a, const float b) NOTHROW;
  155. #if (_OPENMP >= 202011)
  156. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngRayleigh)) match(construct={dispatch}, device={arch(gen)}) \
  157. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  158. adjust_args(need_device_ptr:r)
  159. #endif
  160. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngRayleigh)) match(construct={target variant dispatch}, device={arch(gen)})
  161. int vdRngRayleigh(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double a, const double b) NOTHROW;
  162. #if (_OPENMP >= 202011)
  163. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngWeibull)) match(construct={dispatch}, device={arch(gen)}) \
  164. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  165. adjust_args(need_device_ptr:r)
  166. #endif
  167. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngWeibull)) match(construct={target variant dispatch}, device={arch(gen)})
  168. int vsRngWeibull(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float alpha, const float a, const float beta) NOTHROW;
  169. #if (_OPENMP >= 202011)
  170. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngWeibull)) match(construct={dispatch}, device={arch(gen)}) \
  171. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  172. adjust_args(need_device_ptr:r)
  173. #endif
  174. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngWeibull)) match(construct={target variant dispatch}, device={arch(gen)})
  175. int vdRngWeibull(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double alpha, const double a, const double beta) NOTHROW;
  176. #if (_OPENMP >= 202011)
  177. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngBeta)) match(construct={dispatch}, device={arch(gen)}) \
  178. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  179. adjust_args(need_device_ptr:r)
  180. #endif
  181. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngBeta)) match(construct={target variant dispatch}, device={arch(gen)})
  182. int vsRngBeta(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float p, const float q, const float a, const float beta) NOTHROW;
  183. #if (_OPENMP >= 202011)
  184. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngBeta)) match(construct={dispatch}, device={arch(gen)}) \
  185. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  186. adjust_args(need_device_ptr:r)
  187. #endif
  188. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngBeta)) match(construct={target variant dispatch}, device={arch(gen)})
  189. int vdRngBeta(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double p, const double q, const double a, const double beta) NOTHROW;
  190. #if (_OPENMP >= 202011)
  191. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngGamma)) match(construct={dispatch}, device={arch(gen)}) \
  192. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  193. adjust_args(need_device_ptr:r)
  194. #endif
  195. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngGamma)) match(construct={target variant dispatch}, device={arch(gen)})
  196. int vsRngGamma(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const float alpha, const float a, const float beta) NOTHROW;
  197. #if (_OPENMP >= 202011)
  198. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngGamma)) match(construct={dispatch}, device={arch(gen)}) \
  199. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  200. adjust_args(need_device_ptr:r)
  201. #endif
  202. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngGamma)) match(construct={target variant dispatch}, device={arch(gen)})
  203. int vdRngGamma(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const double alpha, const double a, const double beta) NOTHROW;
  204. #if (_OPENMP >= 202011)
  205. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngChiSquare)) match(construct={dispatch}, device={arch(gen)}) \
  206. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  207. adjust_args(need_device_ptr:r)
  208. #endif
  209. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vsRngChiSquare)) match(construct={target variant dispatch}, device={arch(gen)})
  210. int vsRngChiSquare(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, float r[], const int v) NOTHROW;
  211. #if (_OPENMP >= 202011)
  212. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngChiSquare)) match(construct={dispatch}, device={arch(gen)}) \
  213. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  214. adjust_args(need_device_ptr:r)
  215. #endif
  216. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, vdRngChiSquare)) match(construct={target variant dispatch}, device={arch(gen)})
  217. int vdRngChiSquare(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, double r[], const int v) NOTHROW;
  218. #if (_OPENMP >= 202011)
  219. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngHypergeometric)) match(construct={dispatch}, device={arch(gen)}) \
  220. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  221. adjust_args(need_device_ptr:r)
  222. #endif
  223. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngHypergeometric)) match(construct={target variant dispatch}, device={arch(gen)})
  224. int viRngHypergeometric(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const int l, const int s, const int m) NOTHROW;
  225. #if (_OPENMP >= 202011)
  226. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngBinomial)) match(construct={dispatch}, device={arch(gen)}) \
  227. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  228. adjust_args(need_device_ptr:r)
  229. #endif
  230. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngBinomial)) match(construct={target variant dispatch}, device={arch(gen)})
  231. int viRngBinomial(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const int ntrial, const double p) NOTHROW;
  232. #if (_OPENMP >= 202011)
  233. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngMultinomial)) match(construct={dispatch}, device={arch(gen)}) \
  234. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  235. adjust_args(need_device_ptr:r)
  236. #endif
  237. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngMultinomial)) match(construct={target variant dispatch}, device={arch(gen)})
  238. int viRngMultinomial(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const int ntrial, const int k, const double* p) NOTHROW;
  239. #if (_OPENMP >= 202011)
  240. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngPoissonV)) match(construct={dispatch}, device={arch(gen)}) \
  241. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  242. adjust_args(need_device_ptr:r)
  243. #endif
  244. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngPoissonV)) match(construct={target variant dispatch}, device={arch(gen)})
  245. int viRngPoissonV(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const double* lambda) NOTHROW;
  246. #if (_OPENMP >= 202011)
  247. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngNegbinomial)) match(construct={dispatch}, device={arch(gen)}) \
  248. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  249. adjust_args(need_device_ptr:r)
  250. #endif
  251. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngNegbinomial)) match(construct={target variant dispatch}, device={arch(gen)})
  252. int viRngNegbinomial(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const double a, const double p) NOTHROW;
  253. #if (_OPENMP >= 202011)
  254. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngBernoulli)) match(construct={dispatch}, device={arch(gen)}) \
  255. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  256. adjust_args(need_device_ptr:r)
  257. #endif
  258. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngBernoulli)) match(construct={target variant dispatch}, device={arch(gen)})
  259. int viRngBernoulli(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const double p) NOTHROW;
  260. #if (_OPENMP >= 202011)
  261. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngGeometric)) match(construct={dispatch}, device={arch(gen)}) \
  262. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  263. adjust_args(need_device_ptr:r)
  264. #endif
  265. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngGeometric)) match(construct={target variant dispatch}, device={arch(gen)})
  266. int viRngGeometric(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const double p) NOTHROW;
  267. #if (_OPENMP >= 202011)
  268. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngPoisson)) match(construct={dispatch}, device={arch(gen)}) \
  269. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  270. adjust_args(need_device_ptr:r)
  271. #endif
  272. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngPoisson)) match(construct={target variant dispatch}, device={arch(gen)})
  273. int viRngPoisson(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, int r[], const double lambda) NOTHROW;
  274. #if (_OPENMP >= 202011)
  275. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngUniformBits)) match(construct={dispatch}, device={arch(gen)}) \
  276. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  277. adjust_args(need_device_ptr:r)
  278. #endif
  279. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngUniformBits)) match(construct={target variant dispatch}, device={arch(gen)})
  280. int viRngUniformBits(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, unsigned int r[]) NOTHROW;
  281. #if (_OPENMP >= 202011)
  282. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngUniformBits32)) match(construct={dispatch}, device={arch(gen)}) \
  283. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  284. adjust_args(need_device_ptr:r)
  285. #endif
  286. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngUniformBits32)) match(construct={target variant dispatch}, device={arch(gen)})
  287. int viRngUniformBits32(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, unsigned int r[]) NOTHROW;
  288. #if (_OPENMP >= 202011)
  289. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngUniformBits64)) match(construct={dispatch}, device={arch(gen)}) \
  290. append_args(interop(prefer_type("sycl","level_zero"),targetsync)) \
  291. adjust_args(need_device_ptr:r)
  292. #endif
  293. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, viRngUniformBits64)) match(construct={target variant dispatch}, device={arch(gen)})
  294. int viRngUniformBits64(const MKL_INT method, VSLStreamStatePtr stream, const MKL_INT n, unsigned MKL_INT64 r[]) NOTHROW;
  295. #if (_OPENMP >= 202011)
  296. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, sSSCompute)) match(construct={dispatch}, device={arch(gen)}) \
  297. append_args(interop(prefer_type("sycl","level_zero"),targetsync))
  298. #endif
  299. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, sSSCompute)) match(construct={target variant dispatch}, device={arch(gen)})
  300. int vslsSSCompute(VSLSSTaskPtr, const unsigned MKL_INT64 estimate, const MKL_INT method) NOTHROW;
  301. #if (_OPENMP >= 202011)
  302. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, dSSCompute)) match(construct={dispatch}, device={arch(gen)}) \
  303. append_args(interop(prefer_type("sycl","level_zero"),targetsync))
  304. #endif
  305. #pragma omp declare variant (MKL_VARIANT_NAME(vsl, dSSCompute)) match(construct={target variant dispatch}, device={arch(gen)})
  306. int vsldSSCompute(VSLSSTaskPtr, const unsigned MKL_INT64 estimate, const MKL_INT method) NOTHROW;
  307. #ifdef __cplusplus
  308. }
  309. #endif /* __cplusplus */
  310. #endif // _MKL_VSL_OMP_OFFLOAD_H_