mkl_blas_omp_offload_ilp64.f90 183 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493
  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. ! Content:
  15. ! Intel(R) oneAPI Math Kernel Library (oneMKL) FORTRAN interface for BLAS
  16. ! OpenMP offload
  17. !*******************************************************************************
  18. module onemkl_blas_omp_offload_ilp64
  19. include "mkl_blas_omp_variant_ilp64.f90"
  20. interface
  21. ! Matrix transposition and copy API
  22. subroutine mkl_simatcopy_batch_strided ( ordering, trans, rows, &
  23. &cols, alpha, ab, lda, ldb, stride, batch_size ) BIND(C)
  24. character*1,intent(in) :: ordering, trans
  25. integer,intent(in) :: rows, cols, lda, ldb, stride, batch_size
  26. real,intent(in) :: alpha
  27. real,intent(inout) :: ab( * )
  28. !$omp declare variant( mkl_simatcopy_batch_strided:mkl_blas_simatcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  29. !$omp declare variant( mkl_simatcopy_batch_strided:mkl_blas_simatcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:ab)
  30. end subroutine mkl_simatcopy_batch_strided
  31. subroutine mkl_dimatcopy_batch_strided ( ordering, trans, rows, &
  32. &cols, alpha, ab, lda, ldb, stride, batch_size ) BIND(C)
  33. character*1,intent(in) :: ordering, trans
  34. integer,intent(in) :: rows, cols, lda, ldb, stride, batch_size
  35. double precision,intent(in) :: alpha
  36. double precision,intent(inout) :: ab( * )
  37. !$omp declare variant( mkl_dimatcopy_batch_strided:mkl_blas_dimatcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  38. !$omp declare variant( mkl_dimatcopy_batch_strided:mkl_blas_dimatcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:ab)
  39. end subroutine mkl_dimatcopy_batch_strided
  40. subroutine mkl_cimatcopy_batch_strided ( ordering, trans, rows, &
  41. &cols, alpha, ab, lda, ldb, stride, batch_size ) BIND(C)
  42. character*1,intent(in) :: ordering, trans
  43. integer,intent(in) :: rows, cols, lda, ldb, stride, batch_size
  44. complex,intent(in) :: alpha
  45. complex,intent(inout) :: ab( * )
  46. !$omp declare variant( mkl_cimatcopy_batch_strided:mkl_blas_cimatcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  47. !$omp declare variant( mkl_cimatcopy_batch_strided:mkl_blas_cimatcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:ab)
  48. end subroutine mkl_cimatcopy_batch_strided
  49. subroutine mkl_zimatcopy_batch_strided ( ordering, trans, rows, &
  50. &cols, alpha, ab, lda, ldb, stride, batch_size ) BIND(C)
  51. character*1,intent(in) :: ordering, trans
  52. integer,intent(in) :: rows, cols, lda, ldb, stride, batch_size
  53. complex*16,intent(in) :: alpha
  54. complex*16,intent(inout) :: ab( * )
  55. !$omp declare variant( mkl_zimatcopy_batch_strided:mkl_blas_zimatcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  56. !$omp declare variant( mkl_zimatcopy_batch_strided:mkl_blas_zimatcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:ab)
  57. end subroutine mkl_zimatcopy_batch_strided
  58. subroutine mkl_somatcopy_batch_strided ( ordering, trans, rows, &
  59. &cols, alpha, a, lda, stridea, b, ldb, strideb, batch_size ) BIND(C)
  60. character*1,intent(in) :: ordering, trans
  61. integer,intent(in) :: rows, cols, lda, ldb
  62. integer,intent(in) :: stridea, strideb, batch_size
  63. real,intent(in) :: alpha
  64. real,intent(in) :: a( lda, * )
  65. real,intent(inout) :: b( ldb, * )
  66. !$omp declare variant( mkl_somatcopy_batch_strided:mkl_blas_somatcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  67. !$omp declare variant( mkl_somatcopy_batch_strided:mkl_blas_somatcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  68. end subroutine mkl_somatcopy_batch_strided
  69. subroutine mkl_domatcopy_batch_strided ( ordering, trans, rows, &
  70. &cols, alpha, a, lda, stridea, b, ldb, strideb, batch_size ) BIND(C)
  71. character*1,intent(in) :: ordering, trans
  72. integer,intent(in) :: rows, cols, lda, ldb
  73. integer,intent(in) :: stridea, strideb, batch_size
  74. double precision,intent(in) :: alpha
  75. double precision,intent(in) :: a( lda, * )
  76. double precision,intent(inout) :: b( ldb, * )
  77. !$omp declare variant( mkl_domatcopy_batch_strided:mkl_blas_domatcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  78. !$omp declare variant( mkl_domatcopy_batch_strided:mkl_blas_domatcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  79. end subroutine mkl_domatcopy_batch_strided
  80. subroutine mkl_comatcopy_batch_strided ( ordering, trans, rows, &
  81. &cols, alpha, a, lda, stridea, b, ldb, strideb, batch_size ) BIND(C)
  82. character*1,intent(in) :: ordering, trans
  83. integer,intent(in) :: rows, cols, lda, ldb
  84. integer,intent(in) :: stridea, strideb, batch_size
  85. complex,intent(in) :: alpha
  86. complex,intent(in) :: a( lda, * )
  87. complex,intent(inout) :: b( ldb, * )
  88. !$omp declare variant( mkl_comatcopy_batch_strided:mkl_blas_comatcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  89. !$omp declare variant( mkl_comatcopy_batch_strided:mkl_blas_comatcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  90. end subroutine mkl_comatcopy_batch_strided
  91. subroutine mkl_zomatcopy_batch_strided ( ordering, trans, rows, &
  92. &cols, alpha, a, lda, stridea, b, ldb, strideb, batch_size ) BIND(C)
  93. character*1,intent(in) :: ordering, trans
  94. integer,intent(in) :: rows, cols, lda, ldb
  95. integer,intent(in) :: stridea, strideb, batch_size
  96. complex*16,intent(in) :: alpha
  97. complex*16,intent(in) :: a( lda, * )
  98. complex*16,intent(inout) :: b( ldb, * )
  99. !$omp declare variant( mkl_zomatcopy_batch_strided:mkl_blas_zomatcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  100. !$omp declare variant( mkl_zomatcopy_batch_strided:mkl_blas_zomatcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  101. end subroutine mkl_zomatcopy_batch_strided
  102. subroutine mkl_somatadd_batch_strided ( ordering, transa, transb, rows, &
  103. &cols, alpha, a, lda, stridea, beta, b, ldb, strideb, c, ldc, &
  104. &stridec, batch_size ) BIND(C)
  105. character*1,intent(in) :: ordering, transa, transb
  106. integer,intent(in) :: rows, cols, lda, ldb, ldc
  107. integer,intent(in) :: stridea, strideb, stridec, batch_size
  108. real,intent(in) :: alpha, beta
  109. real,intent(in) :: a( lda, * )
  110. real,intent(in) :: b( ldb, * )
  111. real,intent(inout) :: c( ldc, * )
  112. !$omp declare variant( mkl_somatadd_batch_strided:mkl_blas_somatadd_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  113. !$omp declare variant( mkl_somatadd_batch_strided:mkl_blas_somatadd_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  114. end subroutine mkl_somatadd_batch_strided
  115. subroutine mkl_domatadd_batch_strided ( ordering, transa, transb, rows, &
  116. &cols, alpha, a, lda, stridea, beta, b, ldb, strideb, c, ldc, &
  117. &stridec, batch_size ) BIND(C)
  118. character*1,intent(in) :: ordering, transa, transb
  119. integer,intent(in) :: rows, cols, lda, ldb, ldc
  120. integer,intent(in) :: stridea, strideb, stridec, batch_size
  121. double precision,intent(in) :: alpha, beta
  122. double precision,intent(in) :: a( lda, * )
  123. double precision,intent(in) :: b( ldb, * )
  124. double precision,intent(inout) :: c( ldc, * )
  125. !$omp declare variant( mkl_domatadd_batch_strided:mkl_blas_domatadd_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  126. !$omp declare variant( mkl_domatadd_batch_strided:mkl_blas_domatadd_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  127. end subroutine mkl_domatadd_batch_strided
  128. subroutine mkl_comatadd_batch_strided ( ordering, transa, transb, rows, &
  129. &cols, alpha, a, lda, stridea, beta, b, ldb, strideb, c, ldc, &
  130. &stridec, batch_size ) BIND(C)
  131. character*1,intent(in) :: ordering, transa, transb
  132. integer,intent(in) :: rows, cols, lda, ldb, ldc
  133. integer,intent(in) :: stridea, strideb, stridec, batch_size
  134. complex,intent(in) :: alpha, beta
  135. complex,intent(in) :: a( lda, * )
  136. complex,intent(in) :: b( ldb, * )
  137. complex,intent(inout) :: c( ldc, * )
  138. !$omp declare variant( mkl_comatadd_batch_strided:mkl_blas_comatadd_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  139. !$omp declare variant( mkl_comatadd_batch_strided:mkl_blas_comatadd_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  140. end subroutine mkl_comatadd_batch_strided
  141. subroutine mkl_zomatadd_batch_strided ( ordering, transa, transb, rows, &
  142. &cols, alpha, a, lda, stridea, beta, b, ldb, strideb, c, ldc, &
  143. &stridec, batch_size ) BIND(C)
  144. character*1,intent(in) :: ordering, transa, transb
  145. integer,intent(in) :: rows, cols, lda, ldb, ldc
  146. integer,intent(in) :: stridea, strideb, stridec, batch_size
  147. complex*16,intent(in) :: alpha, beta
  148. complex*16,intent(in) :: a( lda, * )
  149. complex*16,intent(in) :: b( ldb, * )
  150. complex*16,intent(inout) :: c( ldc, * )
  151. !$omp declare variant( mkl_zomatadd_batch_strided:mkl_blas_zomatadd_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  152. !$omp declare variant( mkl_zomatadd_batch_strided:mkl_blas_zomatadd_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  153. end subroutine mkl_zomatadd_batch_strided
  154. subroutine mkl_simatcopy_batch ( ordering, trans_array, rows_array, &
  155. &cols_array, alpha_array, ab_array, lda_array, ldb_array, group_count, group_size ) BIND(C)
  156. use, intrinsic :: ISO_C_BINDING
  157. character*1,intent(in) :: ordering
  158. character*1,intent(in) :: trans_array(*)
  159. integer,intent(in) :: rows_array(*), cols_array(*), lda_array(*), ldb_array(*), group_count, group_size(*)
  160. real,intent(in) :: alpha_array(*)
  161. integer(KIND=C_INTPTR_T),intent(inout) :: ab_array(*)
  162. !$omp declare variant( mkl_simatcopy_batch:mkl_blas_simatcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  163. !$omp declare variant( mkl_simatcopy_batch:mkl_blas_simatcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:ab_array)
  164. end subroutine mkl_simatcopy_batch
  165. subroutine mkl_dimatcopy_batch ( ordering, trans_array, rows_array, &
  166. &cols_array, alpha_array, ab_array, lda_array, ldb_array, group_count, group_size ) BIND(C)
  167. use, intrinsic :: ISO_C_BINDING
  168. character*1,intent(in) :: ordering
  169. character*1,intent(in) :: trans_array(*)
  170. integer,intent(in) :: rows_array(*), cols_array(*), lda_array(*), ldb_array(*), group_count, group_size(*)
  171. double precision,intent(in) :: alpha_array(*)
  172. integer(KIND=C_INTPTR_T),intent(inout) :: ab_array(*)
  173. !$omp declare variant( mkl_dimatcopy_batch:mkl_blas_dimatcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  174. !$omp declare variant( mkl_dimatcopy_batch:mkl_blas_dimatcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:ab_array)
  175. end subroutine mkl_dimatcopy_batch
  176. subroutine mkl_cimatcopy_batch ( ordering, trans_array, rows_array, &
  177. &cols_array, alpha_array, ab_array, lda_array, ldb_array, group_count, group_size ) BIND(C)
  178. use, intrinsic :: ISO_C_BINDING
  179. character*1,intent(in) :: ordering
  180. character*1,intent(in) :: trans_array(*)
  181. integer,intent(in) :: rows_array(*), cols_array(*), lda_array(*), ldb_array(*), group_count, group_size(*)
  182. complex,intent(in) :: alpha_array(*)
  183. integer(KIND=C_INTPTR_T),intent(inout) :: ab_array(*)
  184. !$omp declare variant( mkl_cimatcopy_batch:mkl_blas_cimatcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  185. !$omp declare variant( mkl_cimatcopy_batch:mkl_blas_cimatcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:ab_array)
  186. end subroutine mkl_cimatcopy_batch
  187. subroutine mkl_zimatcopy_batch ( ordering, trans_array, rows_array, &
  188. &cols_array, alpha_array, ab_array, lda_array, ldb_array, group_count, group_size ) BIND(C)
  189. use, intrinsic :: ISO_C_BINDING
  190. character*1,intent(in) :: ordering
  191. character*1,intent(in) :: trans_array(*)
  192. integer,intent(in) :: rows_array(*), cols_array(*), lda_array(*), ldb_array(*), group_count, group_size(*)
  193. complex*16,intent(in) :: alpha_array(*)
  194. integer(KIND=C_INTPTR_T),intent(inout) :: ab_array(*)
  195. !$omp declare variant( mkl_zimatcopy_batch:mkl_blas_zimatcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  196. !$omp declare variant( mkl_zimatcopy_batch:mkl_blas_zimatcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:ab_array)
  197. end subroutine mkl_zimatcopy_batch
  198. subroutine mkl_somatcopy_batch ( ordering, trans_array, rows_array, &
  199. &cols_array, alpha_array, a_array, lda_array, b_array, ldb_array, group_count, group_size ) BIND(C)
  200. use, intrinsic :: ISO_C_BINDING
  201. character*1,intent(in) :: ordering
  202. character*1,intent(in) :: trans_array(*)
  203. integer,intent(in) :: rows_array(*), cols_array(*), lda_array(*), ldb_array(*), group_count, group_size(*)
  204. real,intent(in) :: alpha_array(*)
  205. integer(KIND=C_INTPTR_T),intent(in) :: a_array(*)
  206. integer(KIND=C_INTPTR_T),intent(inout) :: b_array(*)
  207. !$omp declare variant( mkl_somatcopy_batch:mkl_blas_somatcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  208. !$omp declare variant( mkl_somatcopy_batch:mkl_blas_somatcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a_array,b_array)
  209. end subroutine mkl_somatcopy_batch
  210. subroutine mkl_domatcopy_batch ( ordering, trans_array, rows_array, &
  211. &cols_array, alpha_array, a_array, lda_array, b_array, ldb_array, group_count, group_size ) BIND(C)
  212. use, intrinsic :: ISO_C_BINDING
  213. character*1,intent(in) :: ordering
  214. character*1,intent(in) :: trans_array(*)
  215. integer,intent(in) :: rows_array(*), cols_array(*), lda_array(*), ldb_array(*), group_count, group_size(*)
  216. double precision,intent(in) :: alpha_array(*)
  217. integer(KIND=C_INTPTR_T),intent(in) :: a_array(*)
  218. integer(KIND=C_INTPTR_T),intent(inout) :: b_array(*)
  219. !$omp declare variant( mkl_domatcopy_batch:mkl_blas_domatcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  220. !$omp declare variant( mkl_domatcopy_batch:mkl_blas_domatcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a_array,b_array)
  221. end subroutine mkl_domatcopy_batch
  222. subroutine mkl_comatcopy_batch ( ordering, trans_array, rows_array, &
  223. &cols_array, alpha_array, a_array, lda_array, b_array, ldb_array, group_count, group_size ) BIND(C)
  224. use, intrinsic :: ISO_C_BINDING
  225. character*1,intent(in) :: ordering
  226. character*1,intent(in) :: trans_array(*)
  227. integer,intent(in) :: rows_array(*), cols_array(*), lda_array(*), ldb_array(*), group_count, group_size(*)
  228. complex,intent(in) :: alpha_array(*)
  229. integer(KIND=C_INTPTR_T),intent(in) :: a_array(*)
  230. integer(KIND=C_INTPTR_T),intent(inout) :: b_array(*)
  231. !$omp declare variant( mkl_comatcopy_batch:mkl_blas_comatcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  232. !$omp declare variant( mkl_comatcopy_batch:mkl_blas_comatcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a_array,b_array)
  233. end subroutine mkl_comatcopy_batch
  234. subroutine mkl_zomatcopy_batch ( ordering, trans_array, rows_array, &
  235. &cols_array, alpha_array, a_array, lda_array, b_array, ldb_array, group_count, group_size ) BIND(C)
  236. use, intrinsic :: ISO_C_BINDING
  237. character*1,intent(in) :: ordering
  238. character*1,intent(in) :: trans_array(*)
  239. integer,intent(in) :: rows_array(*), cols_array(*), lda_array(*), ldb_array(*), group_count, group_size(*)
  240. complex*16,intent(in) :: alpha_array(*)
  241. integer(KIND=C_INTPTR_T),intent(in) :: a_array(*)
  242. integer(KIND=C_INTPTR_T),intent(inout) :: b_array(*)
  243. !$omp declare variant( mkl_zomatcopy_batch:mkl_blas_zomatcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  244. !$omp declare variant( mkl_zomatcopy_batch:mkl_blas_zomatcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a_array,b_array)
  245. end subroutine mkl_zomatcopy_batch
  246. ! BLAS Level3
  247. subroutine dgemm ( transa, transb, m, n, k, alpha, a, lda, &
  248. &b, ldb, beta, c, ldc ) BIND(C)
  249. character*1,intent(in) :: transa, transb
  250. integer,intent(in) :: m, n, k, lda, ldb, ldc
  251. double precision,intent(in) :: alpha, beta
  252. double precision,intent(in) :: a( lda, * ), b( ldb, * )
  253. double precision,intent(inout) :: c( ldc, * )
  254. !$omp declare variant( dgemm:mkl_blas_dgemm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  255. !$omp declare variant( dgemm:mkl_blas_dgemm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  256. end subroutine dgemm
  257. subroutine sgemm ( transa, transb, m, n, k, alpha, a, lda, &
  258. &b, ldb, beta, c, ldc ) BIND(C)
  259. character*1,intent(in) :: transa, transb
  260. integer,intent(in) :: m, n, k, lda, ldb, ldc
  261. real,intent(in) :: alpha, beta
  262. real,intent(in) :: a( lda, * ), b( ldb, * )
  263. real,intent(inout) :: c( ldc, * )
  264. !$omp declare variant( sgemm:mkl_blas_sgemm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  265. !$omp declare variant( sgemm:mkl_blas_sgemm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  266. end subroutine sgemm
  267. subroutine zgemm ( transa, transb, m, n, k, alpha, a, lda, &
  268. &b, ldb, beta, c, ldc ) BIND(C)
  269. character*1,intent(in) :: transa, transb
  270. integer,intent(in) :: m, n, k, lda, ldb, ldc
  271. complex*16,intent(in) :: alpha, beta
  272. complex*16,intent(in) :: a( lda, * ), b( ldb, * )
  273. complex*16,intent(inout) :: c( ldc, * )
  274. !$omp declare variant( zgemm:mkl_blas_zgemm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  275. !$omp declare variant( zgemm:mkl_blas_zgemm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  276. end subroutine zgemm
  277. subroutine cgemm ( transa, transb, m, n, k, alpha, a, lda, &
  278. &b, ldb, beta, c, ldc ) BIND(C)
  279. character*1,intent(in) :: transa, transb
  280. integer,intent(in) :: m, n, k, lda, ldb, ldc
  281. complex,intent(in) :: alpha, beta
  282. complex,intent(in) :: a( lda, * ), b( ldb, * )
  283. complex,intent(inout) :: c( ldc, * )
  284. !$omp declare variant( cgemm:mkl_blas_cgemm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  285. !$omp declare variant( cgemm:mkl_blas_cgemm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  286. end subroutine cgemm
  287. subroutine gemm_s8u8s32 ( transa, transb, offsetc, m, n, k, &
  288. &alpha, a, lda, ao, b, ldb, bo, beta, c, ldc, co ) BIND(C)
  289. character*1,intent(in) :: transa, transb, offsetc
  290. integer,intent(in) :: m, n, k, lda, ldb, ldc
  291. integer*1,intent(in) :: ao, bo
  292. real,intent(in) :: alpha, beta
  293. integer*1,intent(in) :: a( lda, * ), b (ldb, * )
  294. integer*4,intent(inout) :: c( ldc, * )
  295. integer*4,intent(in) :: co( * )
  296. !$omp declare variant( gemm_s8u8s32:mkl_blas_gemm_s8u8s32_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  297. !$omp declare variant( gemm_s8u8s32:mkl_blas_gemm_s8u8s32_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c,co)
  298. end subroutine gemm_s8u8s32
  299. subroutine dsymm ( side, uplo, m, n, alpha, a, lda, &
  300. &b, ldb, beta, c, ldc ) BIND(C)
  301. character*1,intent(in) :: side, uplo
  302. integer,intent(in) :: m, n, lda, ldb, ldc
  303. double precision,intent(in) :: alpha, beta
  304. double precision,intent(in) :: a( lda, * ), b( ldb, * )
  305. double precision,intent(inout) :: c( ldc, * )
  306. !$omp declare variant( dsymm:mkl_blas_dsymm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  307. !$omp declare variant( dsymm:mkl_blas_dsymm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  308. end subroutine dsymm
  309. subroutine ssymm ( side, uplo, m, n, alpha, a, lda, &
  310. &b, ldb, beta, c, ldc ) BIND(C)
  311. character*1,intent(in) :: side, uplo
  312. integer,intent(in) :: m, n, lda, ldb, ldc
  313. real,intent(in) :: alpha, beta
  314. real,intent(in) :: a( lda, * ), b( ldb, * )
  315. real,intent(inout) :: c( ldc, * )
  316. !$omp declare variant( ssymm:mkl_blas_ssymm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  317. !$omp declare variant( ssymm:mkl_blas_ssymm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  318. end subroutine ssymm
  319. subroutine zsymm ( side, uplo, m, n, alpha, a, lda, &
  320. &b, ldb, beta, c, ldc ) BIND(C)
  321. character*1,intent(in) :: side, uplo
  322. integer,intent(in) :: m, n, lda, ldb, ldc
  323. complex*16,intent(in) :: alpha, beta
  324. complex*16,intent(in) :: a( lda, * ), b( ldb, * )
  325. complex*16,intent(inout) :: c( ldc, * )
  326. !$omp declare variant( zsymm:mkl_blas_zsymm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  327. !$omp declare variant( zsymm:mkl_blas_zsymm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  328. end subroutine zsymm
  329. subroutine csymm ( side, uplo, m, n, alpha, a, lda, &
  330. &b, ldb, beta, c, ldc ) BIND(C)
  331. character*1,intent(in) :: side, uplo
  332. integer,intent(in) :: m, n, lda, ldb, ldc
  333. complex,intent(in) :: alpha, beta
  334. complex,intent(in) :: a( lda, * ), b( ldb, * )
  335. complex,intent(inout) :: c( ldc, * )
  336. !$omp declare variant( csymm:mkl_blas_csymm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  337. !$omp declare variant( csymm:mkl_blas_csymm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  338. end subroutine csymm
  339. subroutine zhemm ( side, uplo, m, n, alpha, a, lda, &
  340. &b, ldb, beta, c, ldc ) BIND(C)
  341. character*1,intent(in) :: side, uplo
  342. integer,intent(in) :: m, n, lda, ldb, ldc
  343. complex*16,intent(in) :: alpha, beta
  344. complex*16,intent(in) :: a( lda, * ), b( ldb, * )
  345. complex*16,intent(inout) :: c( ldc, * )
  346. !$omp declare variant( zhemm:mkl_blas_zhemm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  347. !$omp declare variant( zhemm:mkl_blas_zhemm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  348. end subroutine zhemm
  349. subroutine chemm ( side, uplo, m, n, alpha, a, lda, &
  350. &b, ldb, beta, c, ldc ) BIND(C)
  351. character*1,intent(in) :: side, uplo
  352. integer,intent(in) :: m, n, lda, ldb, ldc
  353. complex,intent(in) :: alpha, beta
  354. complex,intent(in) :: a( lda, * ), b( ldb, * )
  355. complex,intent(inout) :: c( ldc, * )
  356. !$omp declare variant( chemm:mkl_blas_chemm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  357. !$omp declare variant( chemm:mkl_blas_chemm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  358. end subroutine chemm
  359. subroutine dsyrk ( uplo, trans, n, k, alpha, a, lda, &
  360. &beta, c, ldc ) BIND(C)
  361. character*1,intent(in) :: uplo, trans
  362. integer,intent(in) :: n, k, lda, ldc
  363. double precision,intent(in) :: alpha, beta
  364. double precision,intent(in) :: a( lda, * )
  365. double precision,intent(inout) :: c( ldc, * )
  366. !$omp declare variant( dsyrk:mkl_blas_dsyrk_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  367. !$omp declare variant( dsyrk:mkl_blas_dsyrk_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  368. end subroutine dsyrk
  369. subroutine ssyrk ( uplo, trans, n, k, alpha, a, lda, &
  370. &beta, c, ldc ) BIND(C)
  371. character*1,intent(in) :: uplo, trans
  372. integer,intent(in) :: n, k, lda, ldc
  373. real,intent(in) :: alpha, beta
  374. real,intent(in) :: a( lda, * )
  375. real,intent(inout) :: c( ldc, * )
  376. !$omp declare variant( ssyrk:mkl_blas_ssyrk_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  377. !$omp declare variant( ssyrk:mkl_blas_ssyrk_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  378. end subroutine ssyrk
  379. subroutine zsyrk ( uplo, trans, n, k, alpha, a, lda, &
  380. &beta, c, ldc ) BIND(C)
  381. character*1,intent(in) :: uplo, trans
  382. integer,intent(in) :: n, k, lda, ldc
  383. complex*16,intent(in) :: alpha, beta
  384. complex*16,intent(in) :: a( lda, * )
  385. complex*16,intent(inout) :: c( ldc, * )
  386. !$omp declare variant( zsyrk:mkl_blas_zsyrk_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  387. !$omp declare variant( zsyrk:mkl_blas_zsyrk_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  388. end subroutine zsyrk
  389. subroutine csyrk ( uplo, trans, n, k, alpha, a, lda, &
  390. &beta, c, ldc ) BIND(C)
  391. character*1,intent(in) :: uplo, trans
  392. integer,intent(in) :: n, k, lda, ldc
  393. complex,intent(in) :: alpha, beta
  394. complex,intent(in) :: a( lda, * )
  395. complex,intent(inout) :: c( ldc, * )
  396. !$omp declare variant( csyrk:mkl_blas_csyrk_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  397. !$omp declare variant( csyrk:mkl_blas_csyrk_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  398. end subroutine csyrk
  399. subroutine zherk ( uplo, trans, n, k, alpha, a, lda, &
  400. &beta, c, ldc ) BIND(C)
  401. character*1,intent(in) :: uplo, trans
  402. integer,intent(in) :: n, k, lda, ldc
  403. double precision,intent(in) :: alpha, beta
  404. complex*16,intent(in) :: a( lda, * )
  405. complex*16,intent(inout) :: c( ldc, * )
  406. !$omp declare variant( zherk:mkl_blas_zherk_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  407. !$omp declare variant( zherk:mkl_blas_zherk_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  408. end subroutine zherk
  409. subroutine cherk ( uplo, trans, n, k, alpha, a, lda, &
  410. &beta, c, ldc ) BIND(C)
  411. character*1,intent(in) :: uplo, trans
  412. integer,intent(in) :: n, k, lda, ldc
  413. real,intent(in) :: alpha, beta
  414. complex,intent(in) :: a( lda, * )
  415. complex,intent(inout) :: c( ldc, * )
  416. !$omp declare variant( cherk:mkl_blas_cherk_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  417. !$omp declare variant( cherk:mkl_blas_cherk_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  418. end subroutine cherk
  419. subroutine dsyr2k ( uplo, trans, n, k, alpha, a, lda, &
  420. &b, ldb, beta, c, ldc ) BIND(C)
  421. character*1,intent(in) :: uplo, trans
  422. integer,intent(in) :: n, k, lda, ldb, ldc
  423. double precision,intent(in) :: alpha, beta
  424. double precision,intent(in) :: a( lda, * ), b( ldb, * )
  425. double precision,intent(inout) :: c( ldc, * )
  426. !$omp declare variant( dsyr2k:mkl_blas_dsyr2k_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  427. !$omp declare variant( dsyr2k:mkl_blas_dsyr2k_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  428. end subroutine dsyr2k
  429. subroutine ssyr2k ( uplo, trans, n, k, alpha, a, lda, &
  430. &b, ldb, beta, c, ldc ) BIND(C)
  431. character*1,intent(in) :: uplo, trans
  432. integer,intent(in) :: n, k, lda, ldb, ldc
  433. real,intent(in) :: alpha, beta
  434. real,intent(in) :: a( lda, * ), b( ldb, * )
  435. real,intent(inout) :: c( ldc, * )
  436. !$omp declare variant( ssyr2k:mkl_blas_ssyr2k_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  437. !$omp declare variant( ssyr2k:mkl_blas_ssyr2k_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  438. end subroutine ssyr2k
  439. subroutine zsyr2k ( uplo, trans, n, k, alpha, a, lda, &
  440. &b, ldb, beta, c, ldc ) BIND(C)
  441. character*1,intent(in) :: uplo, trans
  442. integer,intent(in) :: n, k, lda, ldb, ldc
  443. complex*16,intent(in) :: alpha, beta
  444. complex*16,intent(in) :: a( lda, * ), b( ldb, * )
  445. complex*16,intent(inout) :: c( ldc, * )
  446. !$omp declare variant( zsyr2k:mkl_blas_zsyr2k_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  447. !$omp declare variant( zsyr2k:mkl_blas_zsyr2k_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  448. end subroutine zsyr2k
  449. subroutine csyr2k ( uplo, trans, n, k, alpha, a, lda, &
  450. &b, ldb, beta, c, ldc ) BIND(C)
  451. character*1,intent(in) :: uplo, trans
  452. integer,intent(in) :: n, k, lda, ldb, ldc
  453. complex,intent(in) :: alpha, beta
  454. complex,intent(in) :: a( lda, * ), b( ldb, * )
  455. complex,intent(inout) :: c( ldc, * )
  456. !$omp declare variant( csyr2k:mkl_blas_csyr2k_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  457. !$omp declare variant( csyr2k:mkl_blas_csyr2k_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  458. end subroutine csyr2k
  459. subroutine zher2k ( uplo, trans, n, k, alpha, a, lda, &
  460. &b, ldb, beta, c, ldc ) BIND(C)
  461. character*1,intent(in) :: uplo, trans
  462. integer,intent(in) :: n, k, lda, ldb, ldc
  463. double precision,intent(in) :: beta
  464. complex*16,intent(in) :: alpha
  465. complex*16,intent(in) :: a( lda, * ), b( ldb, * )
  466. complex*16,intent(inout) :: c( ldc, * )
  467. !$omp declare variant( zher2k:mkl_blas_zher2k_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  468. !$omp declare variant( zher2k:mkl_blas_zher2k_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  469. end subroutine zher2k
  470. subroutine cher2k ( uplo, trans, n, k, alpha, a, lda, &
  471. &b, ldb, beta, c, ldc ) BIND(C)
  472. character*1,intent(in) :: uplo, trans
  473. integer,intent(in) :: n, k, lda, ldb, ldc
  474. real,intent(in) :: beta
  475. complex,intent(in) :: alpha
  476. complex,intent(in) :: a( lda, * ), b( ldb, * )
  477. complex,intent(inout) :: c( ldc, * )
  478. !$omp declare variant( cher2k:mkl_blas_cher2k_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  479. !$omp declare variant( cher2k:mkl_blas_cher2k_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  480. end subroutine cher2k
  481. subroutine dtrmm ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  482. &b, ldb ) BIND(C)
  483. character*1,intent(in) :: side, uplo, trans, diag
  484. integer,intent(in) :: m, n, lda, ldb
  485. double precision,intent(in) :: alpha
  486. double precision,intent(in) :: a( lda, * )
  487. double precision,intent(inout) :: b( ldb, * )
  488. !$omp declare variant( dtrmm:mkl_blas_dtrmm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  489. !$omp declare variant( dtrmm:mkl_blas_dtrmm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  490. end subroutine dtrmm
  491. subroutine strmm ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  492. &b, ldb ) BIND(C)
  493. character*1,intent(in) :: side, uplo, trans, diag
  494. integer,intent(in) :: m, n, lda, ldb
  495. real,intent(in) :: alpha
  496. real,intent(in) :: a( lda, * )
  497. real,intent(inout) :: b( ldb, * )
  498. !$omp declare variant( strmm:mkl_blas_strmm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  499. !$omp declare variant( strmm:mkl_blas_strmm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  500. end subroutine strmm
  501. subroutine ztrmm ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  502. &b, ldb ) BIND(C)
  503. character*1,intent(in) :: side, uplo, trans, diag
  504. integer,intent(in) :: m, n, lda, ldb
  505. complex*16,intent(in) :: alpha
  506. complex*16,intent(in) :: a( lda, * )
  507. complex*16,intent(inout) :: b( ldb, * )
  508. !$omp declare variant( ztrmm:mkl_blas_ztrmm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  509. !$omp declare variant( ztrmm:mkl_blas_ztrmm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  510. end subroutine ztrmm
  511. subroutine ctrmm ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  512. &b, ldb ) BIND(C)
  513. character*1,intent(in) :: side, uplo, trans, diag
  514. integer,intent(in) :: m, n, lda, ldb
  515. complex,intent(in) :: alpha
  516. complex,intent(in) :: a( lda, * )
  517. complex,intent(inout) :: b( ldb, * )
  518. !$omp declare variant( ctrmm:mkl_blas_ctrmm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  519. !$omp declare variant( ctrmm:mkl_blas_ctrmm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  520. end subroutine ctrmm
  521. subroutine dtrsm ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  522. &b, ldb ) BIND(C)
  523. character*1,intent(in) :: side, uplo, trans, diag
  524. integer,intent(in) :: m, n, lda, ldb
  525. double precision,intent(in) :: alpha
  526. double precision,intent(in) :: a( lda, * )
  527. double precision,intent(inout) :: b( ldb, * )
  528. !$omp declare variant( dtrsm:mkl_blas_dtrsm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  529. !$omp declare variant( dtrsm:mkl_blas_dtrsm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  530. end subroutine dtrsm
  531. subroutine strsm ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  532. &b, ldb ) BIND(C)
  533. character*1,intent(in) :: side, uplo, trans, diag
  534. integer,intent(in) :: m, n, lda, ldb
  535. real,intent(in) :: alpha
  536. real,intent(in) :: a( lda, * )
  537. real,intent(inout) :: b( ldb, * )
  538. !$omp declare variant( strsm:mkl_blas_strsm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  539. !$omp declare variant( strsm:mkl_blas_strsm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  540. end subroutine strsm
  541. subroutine ztrsm ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  542. &b, ldb ) BIND(C)
  543. character*1,intent(in) :: side, uplo, trans, diag
  544. integer,intent(in) :: m, n, lda, ldb
  545. complex*16,intent(in) :: alpha
  546. complex*16,intent(in) :: a( lda, * )
  547. complex*16,intent(inout) :: b( ldb, * )
  548. !$omp declare variant( ztrsm:mkl_blas_ztrsm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  549. !$omp declare variant( ztrsm:mkl_blas_ztrsm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  550. end subroutine ztrsm
  551. subroutine ctrsm ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  552. &b, ldb ) BIND(C)
  553. character*1,intent(in) :: side, uplo, trans, diag
  554. integer,intent(in) :: m, n, lda, ldb
  555. complex,intent(in) :: alpha
  556. complex,intent(in) :: a( lda, * )
  557. complex,intent(inout) :: b( ldb, * )
  558. !$omp declare variant( ctrsm:mkl_blas_ctrsm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  559. !$omp declare variant( ctrsm:mkl_blas_ctrsm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  560. end subroutine ctrsm
  561. subroutine dgemmt ( uplo, transa, transb, m, n, alpha, a, lda, &
  562. &b, ldb, beta, c, ldc ) BIND(C)
  563. character*1,intent(in) :: uplo, transa, transb
  564. integer,intent(in) :: m, n, lda, ldb, ldc
  565. double precision,intent(in) :: alpha, beta
  566. double precision,intent(in) :: a( lda, * ), b( ldb, * )
  567. double precision,intent(inout) :: c( ldc, * )
  568. !$omp declare variant( dgemmt:mkl_blas_dgemmt_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  569. !$omp declare variant( dgemmt:mkl_blas_dgemmt_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  570. end subroutine dgemmt
  571. subroutine sgemmt ( uplo, transa, transb, m, n, alpha, a, lda, &
  572. &b, ldb, beta, c, ldc ) BIND(C)
  573. character*1,intent(in) :: uplo, transa, transb
  574. integer,intent(in) :: m, n, lda, ldb, ldc
  575. real,intent(in) :: alpha, beta
  576. real,intent(in) :: a( lda, * ), b( ldb, * )
  577. real,intent(inout) :: c( ldc, * )
  578. !$omp declare variant( sgemmt:mkl_blas_sgemmt_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  579. !$omp declare variant( sgemmt:mkl_blas_sgemmt_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  580. end subroutine sgemmt
  581. subroutine zgemmt ( uplo, transa, transb, m, n, alpha, a, lda, &
  582. &b, ldb, beta, c, ldc ) BIND(C)
  583. character*1,intent(in) :: uplo, transa, transb
  584. integer,intent(in) :: m, n, lda, ldb, ldc
  585. complex*16,intent(in) :: alpha, beta
  586. complex*16,intent(in) :: a( lda, * ), b( ldb, * )
  587. complex*16,intent(inout) :: c( ldc, * )
  588. !$omp declare variant( zgemmt:mkl_blas_zgemmt_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  589. !$omp declare variant( zgemmt:mkl_blas_zgemmt_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  590. end subroutine zgemmt
  591. subroutine cgemmt ( uplo, transa, transb, m, n, alpha, a, lda, &
  592. &b, ldb, beta, c, ldc ) BIND(C)
  593. character*1,intent(in) :: uplo, transa, transb
  594. integer,intent(in) :: m, n, lda, ldb, ldc
  595. complex,intent(in) :: alpha, beta
  596. complex,intent(in) :: a( lda, * ), b( ldb, * )
  597. complex,intent(inout) :: c( ldc, * )
  598. !$omp declare variant( cgemmt:mkl_blas_cgemmt_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  599. !$omp declare variant( cgemmt:mkl_blas_cgemmt_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  600. end subroutine cgemmt
  601. ! BLAS Level2
  602. subroutine dgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, &
  603. &beta, y, incy ) BIND(C)
  604. double precision,intent(in) :: alpha, beta
  605. integer,intent(in) :: incx, incy, kl, ku, lda, m, n
  606. character*1,intent(in) :: trans
  607. double precision,intent(in) :: a( lda, * ), x( * )
  608. double precision,intent(inout) :: y( * )
  609. !$omp declare variant( dgbmv:mkl_blas_dgbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  610. !$omp declare variant( dgbmv:mkl_blas_dgbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  611. end subroutine dgbmv
  612. subroutine sgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, &
  613. &beta, y, incy ) BIND(C)
  614. real,intent(in) :: alpha, beta
  615. integer,intent(in) :: incx, incy, kl, ku, lda, m, n
  616. character*1,intent(in) :: trans
  617. real,intent(in) :: a( lda, * ), x( * )
  618. real,intent(inout) :: y( * )
  619. !$omp declare variant( sgbmv:mkl_blas_sgbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  620. !$omp declare variant( sgbmv:mkl_blas_sgbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  621. end subroutine sgbmv
  622. subroutine zgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, &
  623. &beta, y, incy ) BIND(C)
  624. complex*16,intent(in) :: alpha, beta
  625. integer,intent(in) :: incx, incy, kl, ku, lda, m, n
  626. character*1,intent(in) :: trans
  627. complex*16,intent(in) :: a( lda, * ), x( * )
  628. complex*16,intent(inout) :: y( * )
  629. !$omp declare variant( zgbmv:mkl_blas_zgbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  630. !$omp declare variant( zgbmv:mkl_blas_zgbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  631. end subroutine zgbmv
  632. subroutine cgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, &
  633. &beta, y, incy ) BIND(C)
  634. complex,intent(in) :: alpha, beta
  635. integer,intent(in) :: incx, incy, kl, ku, lda, m, n
  636. character*1,intent(in) :: trans
  637. complex,intent(in) :: a( lda, * ), x( * )
  638. complex,intent(inout) :: y( * )
  639. !$omp declare variant( cgbmv:mkl_blas_cgbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  640. !$omp declare variant( cgbmv:mkl_blas_cgbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  641. end subroutine cgbmv
  642. subroutine dgemv ( trans, m, n, alpha, a, lda, x, incx, &
  643. &beta, y, incy ) BIND(C)
  644. double precision,intent(in) :: alpha, beta
  645. integer,intent(in) :: incx, incy, lda, m, n
  646. character*1,intent(in) :: trans
  647. double precision,intent(in) :: a( lda, * ), x( * )
  648. double precision,intent(inout) :: y( * )
  649. !$omp declare variant( dgemv:mkl_blas_dgemv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  650. !$omp declare variant( dgemv:mkl_blas_dgemv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  651. end subroutine dgemv
  652. subroutine sgemv ( trans, m, n, alpha, a, lda, x, incx, &
  653. &beta, y, incy ) BIND(C)
  654. real,intent(in) :: alpha, beta
  655. integer,intent(in) :: incx, incy, lda, m, n
  656. character*1,intent(in) :: trans
  657. real,intent(in) :: a( lda, * ), x( * )
  658. real,intent(inout) :: y( * )
  659. !$omp declare variant( sgemv:mkl_blas_sgemv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  660. !$omp declare variant( sgemv:mkl_blas_sgemv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  661. end subroutine sgemv
  662. subroutine zgemv ( trans, m, n, alpha, a, lda, x, incx, &
  663. &beta, y, incy ) BIND(C)
  664. complex*16,intent(in) :: alpha, beta
  665. integer,intent(in) :: incx, incy, lda, m, n
  666. character*1,intent(in) :: trans
  667. complex*16,intent(in) :: a( lda, * ), x( * )
  668. complex*16,intent(inout) :: y( * )
  669. !$omp declare variant( zgemv:mkl_blas_zgemv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  670. !$omp declare variant( zgemv:mkl_blas_zgemv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  671. end subroutine zgemv
  672. subroutine cgemv ( trans, m, n, alpha, a, lda, x, incx, &
  673. &beta, y, incy ) BIND(C)
  674. complex,intent(in) :: alpha, beta
  675. integer,intent(in) :: incx, incy, lda, m, n
  676. character*1,intent(in) :: trans
  677. complex,intent(in) :: a( lda, * ), x( * )
  678. complex,intent(inout) :: y( * )
  679. !$omp declare variant( cgemv:mkl_blas_cgemv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  680. !$omp declare variant( cgemv:mkl_blas_cgemv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  681. end subroutine cgemv
  682. subroutine dsbmv ( uplo, n, k, alpha, a, lda, x, incx, &
  683. &beta, y, incy ) BIND(C)
  684. double precision,intent(in) :: alpha, beta
  685. integer,intent(in) :: incx, incy, k, lda, n
  686. character*1,intent(in) :: uplo
  687. double precision,intent(in) :: a( lda, * ), x( * )
  688. double precision,intent(inout) :: y( * )
  689. !$omp declare variant( dsbmv:mkl_blas_dsbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  690. !$omp declare variant( dsbmv:mkl_blas_dsbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  691. end subroutine dsbmv
  692. subroutine ssbmv ( uplo, n, k, alpha, a, lda, x, incx, &
  693. &beta, y, incy ) BIND(C)
  694. real,intent(in) :: alpha, beta
  695. integer,intent(in) :: incx, incy, k, lda, n
  696. character*1,intent(in) :: uplo
  697. real,intent(in) :: a( lda, * ), x( * )
  698. real,intent(inout) :: y( * )
  699. !$omp declare variant( ssbmv:mkl_blas_ssbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  700. !$omp declare variant( ssbmv:mkl_blas_ssbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  701. end subroutine ssbmv
  702. subroutine zhbmv ( uplo, n, k, alpha, a, lda, x, incx, &
  703. &beta, y, incy ) BIND(C)
  704. complex*16,intent(in) :: alpha, beta
  705. integer,intent(in) :: incx, incy, k, lda, n
  706. character*1,intent(in) :: uplo
  707. complex*16,intent(in) :: a( lda, * ), x( * )
  708. complex*16,intent(inout) :: y( * )
  709. !$omp declare variant( zhbmv:mkl_blas_zhbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  710. !$omp declare variant( zhbmv:mkl_blas_zhbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  711. end subroutine zhbmv
  712. subroutine chbmv ( uplo, n, k, alpha, a, lda, x, incx, &
  713. &beta, y, incy ) BIND(C)
  714. complex,intent(in) :: alpha, beta
  715. integer,intent(in) :: incx, incy, k, lda, n
  716. character*1,intent(in) :: uplo
  717. complex,intent(in) :: a( lda, * ), x( * )
  718. complex,intent(inout) :: y( * )
  719. !$omp declare variant( chbmv:mkl_blas_chbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  720. !$omp declare variant( chbmv:mkl_blas_chbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  721. end subroutine chbmv
  722. subroutine dsymv ( uplo, n, alpha, a, lda, x, incx, &
  723. &beta, y, incy ) BIND(C)
  724. double precision,intent(in) :: alpha, beta
  725. integer,intent(in) :: incx, incy, lda, n
  726. character*1,intent(in) :: uplo
  727. double precision,intent(in) :: a( lda, * ), x( * )
  728. double precision,intent(inout) :: y( * )
  729. !$omp declare variant( dsymv:mkl_blas_dsymv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  730. !$omp declare variant( dsymv:mkl_blas_dsymv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  731. end subroutine dsymv
  732. subroutine ssymv ( uplo, n, alpha, a, lda, x, incx, &
  733. &beta, y, incy ) BIND(C)
  734. real,intent(in) :: alpha, beta
  735. integer,intent(in) :: incx, incy, lda, n
  736. character*1,intent(in) :: uplo
  737. real,intent(in) :: a( lda, * ), x( * )
  738. real,intent(inout) :: y( * )
  739. !$omp declare variant( ssymv:mkl_blas_ssymv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  740. !$omp declare variant( ssymv:mkl_blas_ssymv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  741. end subroutine ssymv
  742. subroutine zhemv ( uplo, n, alpha, a, lda, x, incx, &
  743. &beta, y, incy ) BIND(C)
  744. complex*16,intent(in) :: alpha, beta
  745. integer,intent(in) :: incx, incy, lda, n
  746. character*1,intent(in) :: uplo
  747. complex*16,intent(in) :: a( lda, * ), x( * )
  748. complex*16,intent(inout) :: y( * )
  749. !$omp declare variant( zhemv:mkl_blas_zhemv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  750. !$omp declare variant( zhemv:mkl_blas_zhemv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  751. end subroutine zhemv
  752. subroutine chemv ( uplo, n, alpha, a, lda, x, incx, &
  753. &beta, y, incy ) BIND(C)
  754. complex,intent(in) :: alpha, beta
  755. integer,intent(in) :: incx, incy, lda, n
  756. character*1,intent(in) :: uplo
  757. complex,intent(in) :: a( lda, * ), x( * )
  758. complex,intent(inout) :: y( * )
  759. !$omp declare variant( chemv:mkl_blas_chemv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  760. !$omp declare variant( chemv:mkl_blas_chemv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  761. end subroutine chemv
  762. subroutine dspmv ( uplo, n, alpha, a, x, incx, &
  763. &beta, y, incy ) BIND(C)
  764. double precision,intent(in) :: alpha, beta
  765. integer,intent(in) :: incx, incy, n
  766. character*1,intent(in) :: uplo
  767. double precision,intent(in) :: a( * ), x( * )
  768. double precision,intent(inout) :: y( * )
  769. !$omp declare variant( dspmv:mkl_blas_dspmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  770. !$omp declare variant( dspmv:mkl_blas_dspmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  771. end subroutine dspmv
  772. subroutine sspmv ( uplo, n, alpha, a, x, incx, &
  773. &beta, y, incy ) BIND(C)
  774. real,intent(in) :: alpha, beta
  775. integer,intent(in) :: incx, incy, n
  776. character*1,intent(in) :: uplo
  777. real,intent(in) :: a( * ), x( * )
  778. real,intent(inout) :: y( * )
  779. !$omp declare variant( sspmv:mkl_blas_sspmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  780. !$omp declare variant( sspmv:mkl_blas_sspmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  781. end subroutine sspmv
  782. subroutine zhpmv ( uplo, n, alpha, a, x, incx, &
  783. &beta, y, incy ) BIND(C)
  784. complex*16,intent(in) :: alpha, beta
  785. integer,intent(in) :: incx, incy, n
  786. character*1,intent(in) :: uplo
  787. complex*16,intent(in) :: a( * ), x( * )
  788. complex*16,intent(inout) :: y( * )
  789. !$omp declare variant( zhpmv:mkl_blas_zhpmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  790. !$omp declare variant( zhpmv:mkl_blas_zhpmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  791. end subroutine zhpmv
  792. subroutine chpmv ( uplo, n, alpha, a, x, incx, &
  793. &beta, y, incy ) BIND(C)
  794. complex,intent(in) :: alpha, beta
  795. integer,intent(in) :: incx, incy, n
  796. character*1,intent(in) :: uplo
  797. complex,intent(in) :: a( * ), x( * )
  798. complex,intent(inout) :: y( * )
  799. !$omp declare variant( chpmv:mkl_blas_chpmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  800. !$omp declare variant( chpmv:mkl_blas_chpmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  801. end subroutine chpmv
  802. subroutine dger ( m, n, alpha, x, incx, &
  803. &y, incy, a, lda ) BIND(C)
  804. double precision,intent(in) :: alpha
  805. integer,intent(in) :: incx, incy, lda, m, n
  806. double precision,intent(in) :: y( * ), x( * )
  807. double precision,intent(inout) :: a( lda, * )
  808. !$omp declare variant( dger:mkl_blas_dger_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  809. !$omp declare variant( dger:mkl_blas_dger_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  810. end subroutine dger
  811. subroutine sger ( m, n, alpha, x, incx, &
  812. &y, incy, a, lda ) BIND(C)
  813. real,intent(in) :: alpha
  814. integer,intent(in) :: incx, incy, lda, m, n
  815. real,intent(in) :: y( * ), x( * )
  816. real,intent(inout) :: a( lda, * )
  817. !$omp declare variant( sger:mkl_blas_sger_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  818. !$omp declare variant( sger:mkl_blas_sger_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  819. end subroutine sger
  820. subroutine zgerc ( m, n, alpha, x, incx, &
  821. &y, incy, a, lda ) BIND(C)
  822. complex*16,intent(in) :: alpha
  823. integer,intent(in) :: incx, incy, lda, m, n
  824. complex*16,intent(in) :: y( * ), x( * )
  825. complex*16,intent(inout) :: a( lda, * )
  826. !$omp declare variant( zgerc:mkl_blas_zgerc_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  827. !$omp declare variant( zgerc:mkl_blas_zgerc_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  828. end subroutine zgerc
  829. subroutine cgerc ( m, n, alpha, x, incx, &
  830. &y, incy, a, lda ) BIND(C)
  831. complex,intent(in) :: alpha
  832. integer,intent(in) :: incx, incy, lda, m, n
  833. complex,intent(in) :: y( * ), x( * )
  834. complex,intent(inout) :: a( lda, * )
  835. !$omp declare variant( cgerc:mkl_blas_cgerc_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  836. !$omp declare variant( cgerc:mkl_blas_cgerc_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  837. end subroutine cgerc
  838. subroutine zgeru ( m, n, alpha, x, incx, &
  839. &y, incy, a, lda ) BIND(C)
  840. complex*16,intent(in) :: alpha
  841. integer,intent(in) :: incx, incy, lda, m, n
  842. complex*16,intent(in) :: y( * ), x( * )
  843. complex*16,intent(inout) :: a( lda, * )
  844. !$omp declare variant( zgeru:mkl_blas_zgeru_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  845. !$omp declare variant( zgeru:mkl_blas_zgeru_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  846. end subroutine zgeru
  847. subroutine cgeru ( m, n, alpha, x, incx, &
  848. &y, incy, a, lda ) BIND(C)
  849. complex,intent(in) :: alpha
  850. integer,intent(in) :: incx, incy, lda, m, n
  851. complex,intent(in) :: y( * ), x( * )
  852. complex,intent(inout) :: a( lda, * )
  853. !$omp declare variant( cgeru:mkl_blas_cgeru_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  854. !$omp declare variant( cgeru:mkl_blas_cgeru_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  855. end subroutine cgeru
  856. subroutine dsyr ( uplo, n, alpha, x, incx, &
  857. &a, lda ) BIND(C)
  858. character*1,intent(in) :: uplo
  859. double precision,intent(in) :: alpha
  860. integer,intent(in) :: incx, lda, n
  861. double precision,intent(in) :: x( * )
  862. double precision,intent(inout) :: a( lda, * )
  863. !$omp declare variant( dsyr:mkl_blas_dsyr_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  864. !$omp declare variant( dsyr:mkl_blas_dsyr_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  865. end subroutine dsyr
  866. subroutine ssyr ( uplo, n, alpha, x, incx, &
  867. &a, lda ) BIND(C)
  868. character*1,intent(in) :: uplo
  869. real,intent(in) :: alpha
  870. integer,intent(in) :: incx, lda, n
  871. real,intent(in) :: x( * )
  872. real,intent(inout) :: a( lda, * )
  873. !$omp declare variant( ssyr:mkl_blas_ssyr_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  874. !$omp declare variant( ssyr:mkl_blas_ssyr_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  875. end subroutine ssyr
  876. subroutine zher ( uplo, n, alpha, x, incx, &
  877. &a, lda ) BIND(C)
  878. character*1,intent(in) :: uplo
  879. double precision,intent(in) :: alpha
  880. integer,intent(in) :: incx, lda, n
  881. complex*16,intent(in) :: x( * )
  882. complex*16,intent(inout) :: a( lda, * )
  883. !$omp declare variant( zher:mkl_blas_zher_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  884. !$omp declare variant( zher:mkl_blas_zher_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  885. end subroutine zher
  886. subroutine cher ( uplo, n, alpha, x, incx, &
  887. &a, lda ) BIND(C)
  888. character*1,intent(in) :: uplo
  889. real,intent(in) :: alpha
  890. integer,intent(in) :: incx, lda, n
  891. complex,intent(in) :: x( * )
  892. complex,intent(inout) :: a( lda, * )
  893. !$omp declare variant( cher:mkl_blas_cher_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  894. !$omp declare variant( cher:mkl_blas_cher_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  895. end subroutine cher
  896. subroutine dspr ( uplo, n, alpha, x, incx, &
  897. &a ) BIND(C)
  898. character*1,intent(in) :: uplo
  899. double precision,intent(in) :: alpha
  900. integer,intent(in) :: incx, n
  901. double precision,intent(in) :: x( * )
  902. double precision,intent(inout) :: a( * )
  903. !$omp declare variant( dspr:mkl_blas_dspr_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  904. !$omp declare variant( dspr:mkl_blas_dspr_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  905. end subroutine dspr
  906. subroutine sspr ( uplo, n, alpha, x, incx, &
  907. &a ) BIND(C)
  908. character*1,intent(in) :: uplo
  909. real,intent(in) :: alpha
  910. integer,intent(in) :: incx, n
  911. real,intent(in) :: x( * )
  912. real,intent(inout) :: a( * )
  913. !$omp declare variant( sspr:mkl_blas_sspr_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  914. !$omp declare variant( sspr:mkl_blas_sspr_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  915. end subroutine sspr
  916. subroutine zhpr ( uplo, n, alpha, x, incx, &
  917. &a ) BIND(C)
  918. character*1,intent(in) :: uplo
  919. double precision,intent(in) :: alpha
  920. integer,intent(in) :: incx, n
  921. complex*16,intent(in) :: x( * )
  922. complex*16,intent(inout) :: a( * )
  923. !$omp declare variant( zhpr:mkl_blas_zhpr_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  924. !$omp declare variant( zhpr:mkl_blas_zhpr_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  925. end subroutine zhpr
  926. subroutine chpr ( uplo, n, alpha, x, incx, &
  927. &a ) BIND(C)
  928. character*1,intent(in) :: uplo
  929. real,intent(in) :: alpha
  930. integer,intent(in) :: incx, n
  931. complex,intent(in) :: x( * )
  932. complex,intent(inout) :: a( * )
  933. !$omp declare variant( chpr:mkl_blas_chpr_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  934. !$omp declare variant( chpr:mkl_blas_chpr_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  935. end subroutine chpr
  936. subroutine dsyr2 ( uplo, n, alpha, x, incx, y, incy, &
  937. &a, lda ) BIND(C)
  938. character*1,intent(in) :: uplo
  939. double precision,intent(in) :: alpha
  940. integer,intent(in) :: incx, incy, lda, n
  941. double precision,intent(in) :: x( * ), y( * )
  942. double precision,intent(inout) :: a( lda, * )
  943. !$omp declare variant( dsyr2:mkl_blas_dsyr2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  944. !$omp declare variant( dsyr2:mkl_blas_dsyr2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  945. end subroutine dsyr2
  946. subroutine ssyr2 ( uplo, n, alpha, x, incx, y, incy, &
  947. &a, lda ) BIND(C)
  948. character*1,intent(in) :: uplo
  949. real,intent(in) :: alpha
  950. integer,intent(in) :: incx, incy, lda, n
  951. real,intent(in) :: x( * ), y( * )
  952. real,intent(inout) :: a( lda, * )
  953. !$omp declare variant( ssyr2:mkl_blas_ssyr2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  954. !$omp declare variant( ssyr2:mkl_blas_ssyr2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  955. end subroutine ssyr2
  956. subroutine zher2 ( uplo, n, alpha, x, incx, y, incy, &
  957. &a, lda ) BIND(C)
  958. character*1,intent(in) :: uplo
  959. complex*16,intent(in) :: alpha
  960. integer,intent(in) :: incx, incy, lda, n
  961. complex*16,intent(in) :: x( * ), y( * )
  962. complex*16,intent(inout) :: a( lda, * )
  963. !$omp declare variant( zher2:mkl_blas_zher2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  964. !$omp declare variant( zher2:mkl_blas_zher2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  965. end subroutine zher2
  966. subroutine cher2 ( uplo, n, alpha, x, incx, y, incy, &
  967. &a, lda ) BIND(C)
  968. character*1,intent(in) :: uplo
  969. complex,intent(in) :: alpha
  970. integer,intent(in) :: incx, incy, lda, n
  971. complex,intent(in) :: x( * ), y( * )
  972. complex,intent(inout) :: a( lda, * )
  973. !$omp declare variant( cher2:mkl_blas_cher2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  974. !$omp declare variant( cher2:mkl_blas_cher2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  975. end subroutine cher2
  976. subroutine dspr2 ( uplo, n, alpha, x, incx, y, incy, &
  977. &a ) BIND(C)
  978. character*1,intent(in) :: uplo
  979. double precision,intent(in) :: alpha
  980. integer,intent(in) :: incx, incy, n
  981. double precision,intent(in) :: x( * ), y( * )
  982. double precision,intent(inout) :: a( * )
  983. !$omp declare variant( dspr2:mkl_blas_dspr2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  984. !$omp declare variant( dspr2:mkl_blas_dspr2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  985. end subroutine dspr2
  986. subroutine sspr2 ( uplo, n, alpha, x, incx, y, incy, &
  987. &a ) BIND(C)
  988. character*1,intent(in) :: uplo
  989. real,intent(in) :: alpha
  990. integer,intent(in) :: incx, incy, n
  991. real,intent(in) :: x( * ), y( * )
  992. real,intent(inout) :: a( * )
  993. !$omp declare variant( sspr2:mkl_blas_sspr2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  994. !$omp declare variant( sspr2:mkl_blas_sspr2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  995. end subroutine sspr2
  996. subroutine zhpr2 ( uplo, n, alpha, x, incx, y, incy, &
  997. &a ) BIND(C)
  998. character*1,intent(in) :: uplo
  999. complex*16,intent(in) :: alpha
  1000. integer,intent(in) :: incx, incy, n
  1001. complex*16,intent(in) :: x( * ), y( * )
  1002. complex*16,intent(inout) :: a( * )
  1003. !$omp declare variant( zhpr2:mkl_blas_zhpr2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1004. !$omp declare variant( zhpr2:mkl_blas_zhpr2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  1005. end subroutine zhpr2
  1006. subroutine chpr2 ( uplo, n, alpha, x, incx, y, incy, &
  1007. &a ) BIND(C)
  1008. character*1,intent(in) :: uplo
  1009. complex,intent(in) :: alpha
  1010. integer,intent(in) :: incx, incy, n
  1011. complex,intent(in) :: x( * ), y( * )
  1012. complex,intent(inout) :: a( * )
  1013. !$omp declare variant( chpr2:mkl_blas_chpr2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1014. !$omp declare variant( chpr2:mkl_blas_chpr2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  1015. end subroutine chpr2
  1016. subroutine dtbmv ( uplo, trans, diag, n, k, a, lda, x, incx ) BIND(C)
  1017. integer,intent(in) :: incx, k, lda, n
  1018. character*1,intent(in) :: uplo, trans, diag
  1019. double precision,intent(in) :: a( lda, * )
  1020. double precision,intent(inout) :: x( * )
  1021. !$omp declare variant( dtbmv:mkl_blas_dtbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1022. !$omp declare variant( dtbmv:mkl_blas_dtbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1023. end subroutine dtbmv
  1024. subroutine stbmv ( uplo, trans, diag, n, k, a, lda, x, incx ) BIND(C)
  1025. integer,intent(in) :: incx, k, lda, n
  1026. character*1,intent(in) :: uplo, trans, diag
  1027. real,intent(in) :: a( lda, * )
  1028. real,intent(inout) :: x( * )
  1029. !$omp declare variant( stbmv:mkl_blas_stbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1030. !$omp declare variant( stbmv:mkl_blas_stbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1031. end subroutine stbmv
  1032. subroutine ztbmv ( uplo, trans, diag, n, k, a, lda, x, incx ) BIND(C)
  1033. integer,intent(in) :: incx, k, lda, n
  1034. character*1,intent(in) :: uplo, trans, diag
  1035. complex*16,intent(in) :: a( lda, * )
  1036. complex*16,intent(inout) :: x( * )
  1037. !$omp declare variant( ztbmv:mkl_blas_ztbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1038. !$omp declare variant( ztbmv:mkl_blas_ztbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1039. end subroutine ztbmv
  1040. subroutine ctbmv ( uplo, trans, diag, n, k, a, lda, x, incx ) BIND(C)
  1041. integer,intent(in) :: incx, k, lda, n
  1042. character*1,intent(in) :: uplo, trans, diag
  1043. complex,intent(in) :: a( lda, * )
  1044. complex,intent(inout) :: x( * )
  1045. !$omp declare variant( ctbmv:mkl_blas_ctbmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1046. !$omp declare variant( ctbmv:mkl_blas_ctbmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1047. end subroutine ctbmv
  1048. subroutine dtrmv ( uplo, trans, diag, n, a, lda, x, incx ) BIND(C)
  1049. integer,intent(in) :: incx, lda, n
  1050. character*1,intent(in) :: uplo, trans, diag
  1051. double precision,intent(in) :: a( lda, * )
  1052. double precision,intent(inout) :: x( * )
  1053. !$omp declare variant( dtrmv:mkl_blas_dtrmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1054. !$omp declare variant( dtrmv:mkl_blas_dtrmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1055. end subroutine dtrmv
  1056. subroutine strmv ( uplo, trans, diag, n, a, lda, x, incx ) BIND(C)
  1057. integer,intent(in) :: incx, lda, n
  1058. character*1,intent(in) :: uplo, trans, diag
  1059. real,intent(in) :: a( lda, * )
  1060. real,intent(inout) :: x( * )
  1061. !$omp declare variant( strmv:mkl_blas_strmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1062. !$omp declare variant( strmv:mkl_blas_strmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1063. end subroutine strmv
  1064. subroutine ztrmv ( uplo, trans, diag, n, a, lda, x, incx ) BIND(C)
  1065. integer,intent(in) :: incx, lda, n
  1066. character*1,intent(in) :: uplo, trans, diag
  1067. complex*16,intent(in) :: a( lda, * )
  1068. complex*16,intent(inout) :: x( * )
  1069. !$omp declare variant( ztrmv:mkl_blas_ztrmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1070. !$omp declare variant( ztrmv:mkl_blas_ztrmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1071. end subroutine ztrmv
  1072. subroutine ctrmv ( uplo, trans, diag, n, a, lda, x, incx ) BIND(C)
  1073. integer,intent(in) :: incx, lda, n
  1074. character*1,intent(in) :: uplo, trans, diag
  1075. complex,intent(in) :: a( lda, * )
  1076. complex,intent(inout) :: x( * )
  1077. !$omp declare variant( ctrmv:mkl_blas_ctrmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1078. !$omp declare variant( ctrmv:mkl_blas_ctrmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1079. end subroutine ctrmv
  1080. subroutine dtpmv ( uplo, trans, diag, n, a, x, incx ) BIND(C)
  1081. integer,intent(in) :: incx, n
  1082. character*1,intent(in) :: uplo, trans, diag
  1083. double precision,intent(in) :: a( * )
  1084. double precision,intent(inout) :: x( * )
  1085. !$omp declare variant( dtpmv:mkl_blas_dtpmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1086. !$omp declare variant( dtpmv:mkl_blas_dtpmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1087. end subroutine dtpmv
  1088. subroutine stpmv ( uplo, trans, diag, n, a, x, incx ) BIND(C)
  1089. integer,intent(in) :: incx, n
  1090. character*1,intent(in) :: uplo, trans, diag
  1091. real,intent(in) :: a( * )
  1092. real,intent(inout) :: x( * )
  1093. !$omp declare variant( stpmv:mkl_blas_stpmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1094. !$omp declare variant( stpmv:mkl_blas_stpmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1095. end subroutine stpmv
  1096. subroutine ztpmv ( uplo, trans, diag, n, a, x, incx ) BIND(C)
  1097. integer,intent(in) :: incx, n
  1098. character*1,intent(in) :: uplo, trans, diag
  1099. complex*16,intent(in) :: a( * )
  1100. complex*16,intent(inout) :: x( * )
  1101. !$omp declare variant( ztpmv:mkl_blas_ztpmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1102. !$omp declare variant( ztpmv:mkl_blas_ztpmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1103. end subroutine ztpmv
  1104. subroutine ctpmv ( uplo, trans, diag, n, a, x, incx ) BIND(C)
  1105. integer,intent(in) :: incx, n
  1106. character*1,intent(in) :: uplo, trans, diag
  1107. complex,intent(in) :: a( * )
  1108. complex,intent(inout) :: x( * )
  1109. !$omp declare variant( ctpmv:mkl_blas_ctpmv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1110. !$omp declare variant( ctpmv:mkl_blas_ctpmv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1111. end subroutine ctpmv
  1112. subroutine dtbsv ( uplo, trans, diag, n, k, a, lda, x, incx ) BIND(C)
  1113. integer,intent(in) :: incx, k, lda, n
  1114. character*1,intent(in) :: uplo, trans, diag
  1115. double precision,intent(in) :: a( lda, * )
  1116. double precision,intent(inout) :: x( * )
  1117. !$omp declare variant( dtbsv:mkl_blas_dtbsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1118. !$omp declare variant( dtbsv:mkl_blas_dtbsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1119. end subroutine dtbsv
  1120. subroutine stbsv ( uplo, trans, diag, n, k, a, lda, x, incx ) BIND(C)
  1121. integer,intent(in) :: incx, k, lda, n
  1122. character*1,intent(in) :: uplo, trans, diag
  1123. real,intent(in) :: a( lda, * )
  1124. real,intent(inout) :: x( * )
  1125. !$omp declare variant( stbsv:mkl_blas_stbsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1126. !$omp declare variant( stbsv:mkl_blas_stbsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1127. end subroutine stbsv
  1128. subroutine ztbsv ( uplo, trans, diag, n, k, a, lda, x, incx ) BIND(C)
  1129. integer,intent(in) :: incx, k, lda, n
  1130. character*1,intent(in) :: uplo, trans, diag
  1131. complex*16,intent(in) :: a( lda, * )
  1132. complex*16,intent(inout) :: x( * )
  1133. !$omp declare variant( ztbsv:mkl_blas_ztbsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1134. !$omp declare variant( ztbsv:mkl_blas_ztbsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1135. end subroutine ztbsv
  1136. subroutine ctbsv ( uplo, trans, diag, n, k, a, lda, x, incx ) BIND(C)
  1137. integer,intent(in) :: incx, k, lda, n
  1138. character*1,intent(in) :: uplo, trans, diag
  1139. complex,intent(in) :: a( lda, * )
  1140. complex,intent(inout) :: x( * )
  1141. !$omp declare variant( ctbsv:mkl_blas_ctbsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1142. !$omp declare variant( ctbsv:mkl_blas_ctbsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1143. end subroutine ctbsv
  1144. subroutine dtrsv ( uplo, trans, diag, n, a, lda, x, incx ) BIND(C)
  1145. integer,intent(in) :: incx, lda, n
  1146. character*1,intent(in) :: uplo, trans, diag
  1147. double precision,intent(in) :: a( lda, * )
  1148. double precision,intent(inout) :: x( * )
  1149. !$omp declare variant( dtrsv:mkl_blas_dtrsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1150. !$omp declare variant( dtrsv:mkl_blas_dtrsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1151. end subroutine dtrsv
  1152. subroutine strsv ( uplo, trans, diag, n, a, lda, x, incx ) BIND(C)
  1153. integer,intent(in) :: incx, lda, n
  1154. character*1,intent(in) :: uplo, trans, diag
  1155. real,intent(in) :: a( lda, * )
  1156. real,intent(inout) :: x( * )
  1157. !$omp declare variant( strsv:mkl_blas_strsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1158. !$omp declare variant( strsv:mkl_blas_strsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1159. end subroutine strsv
  1160. subroutine ztrsv ( uplo, trans, diag, n, a, lda, x, incx ) BIND(C)
  1161. integer,intent(in) :: incx, lda, n
  1162. character*1,intent(in) :: uplo, trans, diag
  1163. complex*16,intent(in) :: a( lda, * )
  1164. complex*16,intent(inout) :: x( * )
  1165. !$omp declare variant( ztrsv:mkl_blas_ztrsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1166. !$omp declare variant( ztrsv:mkl_blas_ztrsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1167. end subroutine ztrsv
  1168. subroutine ctrsv ( uplo, trans, diag, n, a, lda, x, incx ) BIND(C)
  1169. integer,intent(in) :: incx, lda, n
  1170. character*1,intent(in) :: uplo, trans, diag
  1171. complex,intent(in) :: a( lda, * )
  1172. complex,intent(inout) :: x( * )
  1173. !$omp declare variant( ctrsv:mkl_blas_ctrsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1174. !$omp declare variant( ctrsv:mkl_blas_ctrsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1175. end subroutine ctrsv
  1176. subroutine dtpsv ( uplo, trans, diag, n, a, x, incx ) BIND(C)
  1177. integer,intent(in) :: incx, n
  1178. character*1,intent(in) :: uplo, trans, diag
  1179. double precision,intent(in) :: a( * )
  1180. double precision,intent(inout) :: x( * )
  1181. !$omp declare variant( dtpsv:mkl_blas_dtpsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1182. !$omp declare variant( dtpsv:mkl_blas_dtpsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1183. end subroutine dtpsv
  1184. subroutine stpsv ( uplo, trans, diag, n, a, x, incx ) BIND(C)
  1185. integer,intent(in) :: incx, n
  1186. character*1,intent(in) :: uplo, trans, diag
  1187. real,intent(in) :: a( * )
  1188. real,intent(inout) :: x( * )
  1189. !$omp declare variant( stpsv:mkl_blas_stpsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1190. !$omp declare variant( stpsv:mkl_blas_stpsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1191. end subroutine stpsv
  1192. subroutine ztpsv ( uplo, trans, diag, n, a, x, incx ) BIND(C)
  1193. integer,intent(in) :: incx, n
  1194. character*1,intent(in) :: uplo, trans, diag
  1195. complex*16,intent(in) :: a( * )
  1196. complex*16,intent(inout) :: x( * )
  1197. !$omp declare variant( ztpsv:mkl_blas_ztpsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1198. !$omp declare variant( ztpsv:mkl_blas_ztpsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1199. end subroutine ztpsv
  1200. subroutine ctpsv ( uplo, trans, diag, n, a, x, incx ) BIND(C)
  1201. integer,intent(in) :: incx, n
  1202. character*1,intent(in) :: uplo, trans, diag
  1203. complex,intent(in) :: a( * )
  1204. complex,intent(inout) :: x( * )
  1205. !$omp declare variant( ctpsv:mkl_blas_ctpsv_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1206. !$omp declare variant( ctpsv:mkl_blas_ctpsv_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x)
  1207. end subroutine ctpsv
  1208. ! BLAS Level1
  1209. function dasum ( n, x, incx ) BIND(C)
  1210. double precision :: dasum
  1211. integer,intent(in) :: incx, n
  1212. double precision,intent(in) :: x( * )
  1213. !$omp declare variant( dasum:mkl_blas_dasum_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1214. !$omp declare variant( dasum:mkl_blas_dasum_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1215. end function dasum
  1216. function sasum ( n, x, incx ) BIND(C)
  1217. real :: sasum
  1218. integer,intent(in) :: incx, n
  1219. real,intent(in) :: x( * )
  1220. !$omp declare variant( sasum:mkl_blas_sasum_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1221. !$omp declare variant( sasum:mkl_blas_sasum_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1222. end function sasum
  1223. function dzasum ( n, x, incx ) BIND(C)
  1224. double precision :: dzasum
  1225. integer,intent(in) :: incx, n
  1226. complex*16,intent(in) :: x( * )
  1227. !$omp declare variant( dzasum:mkl_blas_dzasum_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1228. !$omp declare variant( dzasum:mkl_blas_dzasum_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1229. end function dzasum
  1230. function scasum ( n, x, incx ) BIND(C)
  1231. real :: scasum
  1232. integer,intent(in) :: incx, n
  1233. complex,intent(in) :: x( * )
  1234. !$omp declare variant( scasum:mkl_blas_scasum_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1235. !$omp declare variant( scasum:mkl_blas_scasum_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1236. end function scasum
  1237. function dnrm2 ( n, x, incx ) BIND(C)
  1238. double precision :: dnrm2
  1239. integer,intent(in) :: incx, n
  1240. double precision,intent(in) :: x( * )
  1241. !$omp declare variant( dnrm2:mkl_blas_dnrm2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1242. !$omp declare variant( dnrm2:mkl_blas_dnrm2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1243. end function dnrm2
  1244. function snrm2 ( n, x, incx ) BIND(C)
  1245. real :: snrm2
  1246. integer,intent(in) :: incx, n
  1247. real,intent(in) :: x( * )
  1248. !$omp declare variant( snrm2:mkl_blas_snrm2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1249. !$omp declare variant( snrm2:mkl_blas_snrm2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1250. end function snrm2
  1251. function dznrm2 ( n, x, incx ) BIND(C)
  1252. double precision :: dznrm2
  1253. integer,intent(in) :: incx, n
  1254. complex*16,intent(in) :: x( * )
  1255. !$omp declare variant( dznrm2:mkl_blas_dznrm2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1256. !$omp declare variant( dznrm2:mkl_blas_dznrm2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1257. end function dznrm2
  1258. function scnrm2 ( n, x, incx ) BIND(C)
  1259. real :: scnrm2
  1260. integer,intent(in) :: incx, n
  1261. complex,intent(in) :: x( * )
  1262. !$omp declare variant( scnrm2:mkl_blas_scnrm2_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1263. !$omp declare variant( scnrm2:mkl_blas_scnrm2_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1264. end function scnrm2
  1265. subroutine daxpy ( n, alpha, x, incx, &
  1266. &y, incy ) BIND(C)
  1267. double precision,intent(in) :: alpha
  1268. integer,intent(in) :: incx, incy, n
  1269. double precision,intent(in) :: x( * )
  1270. double precision,intent(inout) :: y( * )
  1271. !$omp declare variant( daxpy:mkl_blas_daxpy_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1272. !$omp declare variant( daxpy:mkl_blas_daxpy_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1273. end subroutine daxpy
  1274. subroutine saxpy ( n, alpha, x, incx, &
  1275. &y, incy ) BIND(C)
  1276. real,intent(in) :: alpha
  1277. integer,intent(in) :: incx, incy, n
  1278. real,intent(in) :: x( * )
  1279. real,intent(inout) :: y( * )
  1280. !$omp declare variant( saxpy:mkl_blas_saxpy_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1281. !$omp declare variant( saxpy:mkl_blas_saxpy_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1282. end subroutine saxpy
  1283. subroutine zaxpy ( n, alpha, x, incx, &
  1284. &y, incy ) BIND(C)
  1285. complex*16,intent(in) :: alpha
  1286. integer,intent(in) :: incx, incy, n
  1287. complex*16,intent(in) :: x( * )
  1288. complex*16,intent(inout) :: y( * )
  1289. !$omp declare variant( zaxpy:mkl_blas_zaxpy_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1290. !$omp declare variant( zaxpy:mkl_blas_zaxpy_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1291. end subroutine zaxpy
  1292. subroutine caxpy ( n, alpha, x, incx, &
  1293. &y, incy ) BIND(C)
  1294. complex,intent(in) :: alpha
  1295. integer,intent(in) :: incx, incy, n
  1296. complex,intent(in) :: x( * )
  1297. complex,intent(inout) :: y( * )
  1298. !$omp declare variant( caxpy:mkl_blas_caxpy_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1299. !$omp declare variant( caxpy:mkl_blas_caxpy_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1300. end subroutine caxpy
  1301. subroutine daxpby ( n, alpha, x, incx, &
  1302. &beta, y, incy ) BIND(C)
  1303. double precision,intent(in) :: alpha, beta
  1304. integer,intent(in) :: incx, incy, n
  1305. double precision,intent(in) :: x( * )
  1306. double precision,intent(inout) :: y( * )
  1307. !$omp declare variant( daxpby:mkl_blas_daxpby_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1308. !$omp declare variant( daxpby:mkl_blas_daxpby_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1309. end subroutine daxpby
  1310. subroutine saxpby ( n, alpha, x, incx, &
  1311. &beta, y, incy ) BIND(C)
  1312. real,intent(in) :: alpha, beta
  1313. integer,intent(in) :: incx, incy, n
  1314. real,intent(in) :: x( * )
  1315. real,intent(inout) :: y( * )
  1316. !$omp declare variant( saxpby:mkl_blas_saxpby_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1317. !$omp declare variant( saxpby:mkl_blas_saxpby_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1318. end subroutine saxpby
  1319. subroutine zaxpby ( n, alpha, x, incx, &
  1320. &beta, y, incy ) BIND(C)
  1321. complex*16,intent(in) :: alpha, beta
  1322. integer,intent(in) :: incx, incy, n
  1323. complex*16,intent(in) :: x( * )
  1324. complex*16,intent(inout) :: y( * )
  1325. !$omp declare variant( zaxpby:mkl_blas_zaxpby_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1326. !$omp declare variant( zaxpby:mkl_blas_zaxpby_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1327. end subroutine zaxpby
  1328. subroutine caxpby ( n, alpha, x, incx, &
  1329. &beta, y, incy ) BIND(C)
  1330. complex,intent(in) :: alpha, beta
  1331. integer,intent(in) :: incx, incy, n
  1332. complex,intent(in) :: x( * )
  1333. complex,intent(inout) :: y( * )
  1334. !$omp declare variant( caxpby:mkl_blas_caxpby_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1335. !$omp declare variant( caxpby:mkl_blas_caxpby_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1336. end subroutine caxpby
  1337. subroutine dcopy ( n, x, incx, &
  1338. &y, incy ) BIND(C)
  1339. integer,intent(in) :: incx, incy, n
  1340. double precision,intent(in) :: x( * )
  1341. double precision,intent(inout) :: y( * )
  1342. !$omp declare variant( dcopy:mkl_blas_dcopy_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1343. !$omp declare variant( dcopy:mkl_blas_dcopy_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1344. end subroutine dcopy
  1345. subroutine scopy ( n, x, incx, &
  1346. &y, incy ) BIND(C)
  1347. integer,intent(in) :: incx, incy, n
  1348. real,intent(in) :: x( * )
  1349. real,intent(inout) :: y( * )
  1350. !$omp declare variant( scopy:mkl_blas_scopy_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1351. !$omp declare variant( scopy:mkl_blas_scopy_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1352. end subroutine scopy
  1353. subroutine zcopy ( n, x, incx, &
  1354. &y, incy ) BIND(C)
  1355. integer,intent(in) :: incx, incy, n
  1356. complex*16,intent(in) :: x( * )
  1357. complex*16,intent(inout) :: y( * )
  1358. !$omp declare variant( zcopy:mkl_blas_zcopy_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1359. !$omp declare variant( zcopy:mkl_blas_zcopy_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1360. end subroutine zcopy
  1361. subroutine ccopy ( n, x, incx, &
  1362. &y, incy ) BIND(C)
  1363. integer,intent(in) :: incx, incy, n
  1364. complex,intent(in) :: x( * )
  1365. complex,intent(inout) :: y( * )
  1366. !$omp declare variant( ccopy:mkl_blas_ccopy_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1367. !$omp declare variant( ccopy:mkl_blas_ccopy_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1368. end subroutine ccopy
  1369. function ddot ( n, x, incx, y, incy ) BIND(C)
  1370. double precision :: ddot
  1371. integer,intent(in) :: incx, incy, n
  1372. double precision,intent(in) :: x( * ), y( * )
  1373. !$omp declare variant( ddot:mkl_blas_ddot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1374. !$omp declare variant( ddot:mkl_blas_ddot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1375. end function ddot
  1376. function sdot ( n, x, incx, y, incy ) BIND(C)
  1377. real :: sdot
  1378. integer,intent(in) :: incx, incy, n
  1379. real,intent(in) :: x( * ), y( * )
  1380. !$omp declare variant( sdot:mkl_blas_sdot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1381. !$omp declare variant( sdot:mkl_blas_sdot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1382. end function sdot
  1383. function dsdot ( n, x, incx, y, incy ) BIND(C)
  1384. double precision :: dsdot
  1385. integer,intent(in) :: incx, incy, n
  1386. real,intent(in) :: x( * ), y( * )
  1387. !$omp declare variant( dsdot:mkl_blas_dsdot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1388. !$omp declare variant( dsdot:mkl_blas_dsdot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1389. end function dsdot
  1390. function sdsdot ( n, sb, x, incx, y, incy ) BIND(C)
  1391. real :: sdsdot
  1392. integer,intent(in) :: incx, incy, n
  1393. real,intent(in) :: sb, x( * ), y( * )
  1394. !$omp declare variant( sdsdot:mkl_blas_sdsdot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1395. !$omp declare variant( sdsdot:mkl_blas_sdsdot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1396. end function sdsdot
  1397. function zdotc ( n, x, incx, y, incy )
  1398. complex*16 :: zdotc
  1399. integer,intent(in) :: incx, incy, n
  1400. complex*16,intent(in) :: x( * ), y( * )
  1401. !$omp declare variant( zdotc:mkl_blas_zdotc_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1402. !$omp declare variant( zdotc:mkl_blas_zdotc_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1403. end function zdotc
  1404. function cdotc ( n, x, incx, y, incy )
  1405. complex :: cdotc
  1406. integer,intent(in) :: incx, incy, n
  1407. complex,intent(in) :: x( * ), y( * )
  1408. !$omp declare variant( cdotc:mkl_blas_cdotc_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1409. !$omp declare variant( cdotc:mkl_blas_cdotc_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1410. end function cdotc
  1411. function zdotu ( n, x, incx, y, incy )
  1412. complex*16 :: zdotu
  1413. integer,intent(in) :: incx, incy, n
  1414. complex*16,intent(in) :: x( * ), y( * )
  1415. !$omp declare variant( zdotu:mkl_blas_zdotu_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1416. !$omp declare variant( zdotu:mkl_blas_zdotu_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1417. end function zdotu
  1418. function cdotu ( n, x, incx, y, incy )
  1419. complex :: cdotu
  1420. integer,intent(in) :: incx, incy, n
  1421. complex,intent(in) :: x( * ), y( * )
  1422. !$omp declare variant( cdotu:mkl_blas_cdotu_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1423. !$omp declare variant( cdotu:mkl_blas_cdotu_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1424. end function cdotu
  1425. subroutine drot ( n, x, incx, &
  1426. &y, incy, c, s ) BIND(C)
  1427. double precision,intent(in) :: c, s
  1428. integer,intent(in) :: incx, incy, n
  1429. double precision,intent(inout) :: x( * ), y( * )
  1430. !$omp declare variant( drot:mkl_blas_drot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1431. !$omp declare variant( drot:mkl_blas_drot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1432. end subroutine drot
  1433. subroutine srot ( n, x, incx, &
  1434. &y, incy, c, s ) BIND(C)
  1435. real,intent(in) :: c, s
  1436. integer,intent(in) :: incx, incy, n
  1437. real,intent(inout) :: x( * ), y( * )
  1438. !$omp declare variant( srot:mkl_blas_srot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1439. !$omp declare variant( srot:mkl_blas_srot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1440. end subroutine srot
  1441. subroutine zdrot ( n, x, incx, &
  1442. &y, incy, c, s ) BIND(C)
  1443. double precision,intent(in) :: c, s
  1444. integer,intent(in) :: incx, incy, n
  1445. complex*16,intent(inout) :: x( * ), y( * )
  1446. !$omp declare variant( zdrot:mkl_blas_zdrot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1447. !$omp declare variant( zdrot:mkl_blas_zdrot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1448. end subroutine zdrot
  1449. subroutine zrot ( n, x, incx, &
  1450. &y, incy, c, s ) BIND(C)
  1451. double precision,intent(in) :: c
  1452. complex*16, intent(in) :: s
  1453. integer,intent(in) :: incx, incy, n
  1454. complex*16,intent(inout) :: x( * ), y( * )
  1455. !$omp declare variant( zrot:mkl_blas_zrot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1456. !$omp declare variant( zrot:mkl_blas_zrot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1457. end subroutine zrot
  1458. subroutine csrot ( n, x, incx, &
  1459. &y, incy, c, s ) BIND(C)
  1460. real,intent(in) :: c, s
  1461. integer,intent(in) :: incx, incy, n
  1462. complex,intent(inout) :: x( * ), y( * )
  1463. !$omp declare variant( csrot:mkl_blas_csrot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1464. !$omp declare variant( csrot:mkl_blas_csrot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1465. end subroutine csrot
  1466. subroutine crot ( n, x, incx, &
  1467. &y, incy, c, s ) BIND(C)
  1468. real,intent(in) :: c
  1469. complex, intent(in) :: s
  1470. integer,intent(in) :: incx, incy, n
  1471. complex,intent(inout) :: x( * ), y( * )
  1472. !$omp declare variant( crot:mkl_blas_crot_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1473. !$omp declare variant( crot:mkl_blas_crot_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1474. end subroutine crot
  1475. subroutine drotg( a, b, c, s ) BIND(C)
  1476. double precision,intent(inout) :: a( * ), b( * ), c( * ), s( * )
  1477. !$omp declare variant( drotg:mkl_blas_drotg_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1478. !$omp declare variant( drotg:mkl_blas_drotg_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c,s)
  1479. end subroutine drotg
  1480. subroutine srotg( a, b, c, s ) BIND(C)
  1481. real,intent(inout) :: a( * ), b( * ), c( * ), s( * )
  1482. !$omp declare variant( srotg:mkl_blas_srotg_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1483. !$omp declare variant( srotg:mkl_blas_srotg_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c,s)
  1484. end subroutine srotg
  1485. subroutine zrotg( a, b, c, s ) BIND(C)
  1486. complex*16,intent(inout) :: a( * ), b( * ), s( * )
  1487. double precision,intent(inout) :: c( * )
  1488. !$omp declare variant( zrotg:mkl_blas_zrotg_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1489. !$omp declare variant( zrotg:mkl_blas_zrotg_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c,s)
  1490. end subroutine zrotg
  1491. subroutine crotg( a, b, c, s ) BIND(C)
  1492. complex,intent(inout) :: a( * ), b( * ), s( * )
  1493. real,intent(inout) :: c( * )
  1494. !$omp declare variant( crotg:mkl_blas_crotg_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1495. !$omp declare variant( crotg:mkl_blas_crotg_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c,s)
  1496. end subroutine crotg
  1497. subroutine drotm ( n, x, incx, &
  1498. &y, incy, param ) BIND(C)
  1499. integer,intent(in) :: incx, incy, n
  1500. double precision,intent(in) :: param( * )
  1501. double precision,intent(inout) :: x( * ), y( * )
  1502. !$omp declare variant( drotm:mkl_blas_drotm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1503. !$omp declare variant( drotm:mkl_blas_drotm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y,param)
  1504. end subroutine drotm
  1505. subroutine srotm ( n, x, incx, &
  1506. &y, incy, param ) BIND(C)
  1507. integer,intent(in) :: incx, incy, n
  1508. real,intent(in) :: param( * )
  1509. real,intent(inout) :: x( * ), y( * )
  1510. !$omp declare variant( srotm:mkl_blas_srotm_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1511. !$omp declare variant( srotm:mkl_blas_srotm_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y,param)
  1512. end subroutine srotm
  1513. subroutine drotmg ( d1, d2, x1, x2, param ) BIND(C)
  1514. double precision,intent(in) :: x2
  1515. double precision,intent(inout) :: d1( * ), d2( * ), x1( * ), param( * )
  1516. !$omp declare variant( drotmg:mkl_blas_drotmg_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1517. !$omp declare variant( drotmg:mkl_blas_drotmg_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:d1,d2,x1,param)
  1518. end subroutine drotmg
  1519. subroutine srotmg ( d1, d2, x1, x2, param ) BIND(C)
  1520. real,intent(in) :: x2
  1521. real,intent(inout) :: d1( * ), d2( * ), x1( * ), param( * )
  1522. !$omp declare variant( srotmg:mkl_blas_srotmg_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1523. !$omp declare variant( srotmg:mkl_blas_srotmg_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:d1,d2,x1,param)
  1524. end subroutine srotmg
  1525. subroutine dscal ( n, alpha, x, incx ) BIND(C)
  1526. double precision,intent(in) :: alpha
  1527. integer,intent(in) :: incx, n
  1528. double precision,intent(inout) :: x( * )
  1529. !$omp declare variant( dscal:mkl_blas_dscal_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1530. !$omp declare variant( dscal:mkl_blas_dscal_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1531. end subroutine dscal
  1532. subroutine sscal ( n, alpha, x, incx ) BIND(C)
  1533. real,intent(in) :: alpha
  1534. integer,intent(in) :: incx, n
  1535. real,intent(inout) :: x( * )
  1536. !$omp declare variant( sscal:mkl_blas_sscal_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1537. !$omp declare variant( sscal:mkl_blas_sscal_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1538. end subroutine sscal
  1539. subroutine zscal ( n, alpha, x, incx ) BIND(C)
  1540. complex*16,intent(in) :: alpha
  1541. integer,intent(in) :: incx, n
  1542. complex*16,intent(inout) :: x( * )
  1543. !$omp declare variant( zscal:mkl_blas_zscal_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1544. !$omp declare variant( zscal:mkl_blas_zscal_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1545. end subroutine zscal
  1546. subroutine cscal ( n, alpha, x, incx ) BIND(C)
  1547. complex,intent(in) :: alpha
  1548. integer,intent(in) :: incx, n
  1549. complex,intent(inout) :: x( * )
  1550. !$omp declare variant( cscal:mkl_blas_cscal_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1551. !$omp declare variant( cscal:mkl_blas_cscal_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1552. end subroutine cscal
  1553. subroutine zdscal ( n, alpha, x, incx ) BIND(C)
  1554. double precision,intent(in) :: alpha
  1555. integer,intent(in) :: incx, n
  1556. complex*16,intent(inout) :: x( * )
  1557. !$omp declare variant( zdscal:mkl_blas_zdscal_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1558. !$omp declare variant( zdscal:mkl_blas_zdscal_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1559. end subroutine zdscal
  1560. subroutine csscal ( n, alpha, x, incx ) BIND(C)
  1561. real,intent(in) :: alpha
  1562. integer,intent(in) :: incx, n
  1563. complex,intent(inout) :: x( * )
  1564. !$omp declare variant( csscal:mkl_blas_csscal_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1565. !$omp declare variant( csscal:mkl_blas_csscal_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1566. end subroutine csscal
  1567. subroutine dswap ( n, x, incx, &
  1568. &y, incy ) BIND(C)
  1569. integer,intent(in) :: incx, incy, n
  1570. double precision,intent(inout) :: x( * ), y( * )
  1571. !$omp declare variant( dswap:mkl_blas_dswap_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1572. !$omp declare variant( dswap:mkl_blas_dswap_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1573. end subroutine dswap
  1574. subroutine sswap ( n, x, incx, &
  1575. &y, incy ) BIND(C)
  1576. integer,intent(in) :: incx, incy, n
  1577. real,intent(inout) :: x( * ), y( * )
  1578. !$omp declare variant( sswap:mkl_blas_sswap_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1579. !$omp declare variant( sswap:mkl_blas_sswap_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1580. end subroutine sswap
  1581. subroutine zswap ( n, x, incx, &
  1582. &y, incy ) BIND(C)
  1583. integer,intent(in) :: incx, incy, n
  1584. complex*16,intent(inout) :: x( * ), y( * )
  1585. !$omp declare variant( zswap:mkl_blas_zswap_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1586. !$omp declare variant( zswap:mkl_blas_zswap_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1587. end subroutine zswap
  1588. subroutine cswap ( n, x, incx, &
  1589. &y, incy ) BIND(C)
  1590. integer,intent(in) :: incx, incy, n
  1591. complex,intent(inout) :: x( * ), y( * )
  1592. !$omp declare variant( cswap:mkl_blas_cswap_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1593. !$omp declare variant( cswap:mkl_blas_cswap_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1594. end subroutine cswap
  1595. function idamax ( n, x, incx ) BIND(C)
  1596. integer :: idamax
  1597. integer,intent(in) :: incx, n
  1598. double precision,intent(in) :: x( * )
  1599. !$omp declare variant( idamax:mkl_blas_idamax_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1600. !$omp declare variant( idamax:mkl_blas_idamax_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1601. end function idamax
  1602. function isamax ( n, x, incx ) BIND(C)
  1603. integer :: isamax
  1604. integer,intent(in) :: incx, n
  1605. real,intent(in) :: x( * )
  1606. !$omp declare variant( isamax:mkl_blas_isamax_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1607. !$omp declare variant( isamax:mkl_blas_isamax_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1608. end function isamax
  1609. function izamax ( n, x, incx ) BIND(C)
  1610. integer :: izamax
  1611. integer,intent(in) :: incx, n
  1612. complex*16,intent(in) :: x( * )
  1613. !$omp declare variant( izamax:mkl_blas_izamax_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1614. !$omp declare variant( izamax:mkl_blas_izamax_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1615. end function izamax
  1616. function icamax ( n, x, incx ) BIND(C)
  1617. integer :: icamax
  1618. integer,intent(in) :: incx, n
  1619. complex,intent(in) :: x( * )
  1620. !$omp declare variant( icamax:mkl_blas_icamax_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1621. !$omp declare variant( icamax:mkl_blas_icamax_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1622. end function icamax
  1623. function idamin ( n, x, incx ) BIND(C)
  1624. integer :: idamin
  1625. integer,intent(in) :: incx, n
  1626. double precision,intent(in) :: x( * )
  1627. !$omp declare variant( idamin:mkl_blas_idamin_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1628. !$omp declare variant( idamin:mkl_blas_idamin_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1629. end function idamin
  1630. function isamin ( n, x, incx ) BIND(C)
  1631. integer :: isamin
  1632. integer,intent(in) :: incx, n
  1633. real,intent(in) :: x( * )
  1634. !$omp declare variant( isamin:mkl_blas_isamin_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1635. !$omp declare variant( isamin:mkl_blas_isamin_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1636. end function isamin
  1637. function izamin ( n, x, incx ) BIND(C)
  1638. integer :: izamin
  1639. integer,intent(in) :: incx, n
  1640. complex*16,intent(in) :: x( * )
  1641. !$omp declare variant( izamin:mkl_blas_izamin_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1642. !$omp declare variant( izamin:mkl_blas_izamin_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1643. end function izamin
  1644. function icamin ( n, x, incx ) BIND(C)
  1645. integer :: icamin
  1646. integer,intent(in) :: incx, n
  1647. complex,intent(in) :: x( * )
  1648. !$omp declare variant( icamin:mkl_blas_icamin_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1649. !$omp declare variant( icamin:mkl_blas_icamin_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x)
  1650. end function icamin
  1651. ! BLAS batch
  1652. subroutine dtrsm_batch_strided ( side, uplo, trans, diag, m, n, alpha, a, lda, stridea, &
  1653. &b, ldb, strideb, batch_size ) BIND(C)
  1654. character*1,intent(in) :: side, uplo, trans, diag
  1655. integer,intent(in) :: m, n, lda, stridea, ldb, strideb, batch_size
  1656. double precision,intent(in) :: alpha
  1657. double precision,intent(in) :: a( lda, * )
  1658. double precision,intent(inout) :: b( ldb, * )
  1659. !$omp declare variant( dtrsm_batch_strided:mkl_blas_dtrsm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1660. !$omp declare variant( dtrsm_batch_strided:mkl_blas_dtrsm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  1661. end subroutine dtrsm_batch_strided
  1662. subroutine strsm_batch_strided ( side, uplo, trans, diag, m, n, alpha, a, lda, stridea, &
  1663. &b, ldb, strideb, batch_size ) BIND(C)
  1664. character*1,intent(in) :: side, uplo, trans, diag
  1665. integer,intent(in) :: m, n, lda, stridea, ldb, strideb, batch_size
  1666. real,intent(in) :: alpha
  1667. real,intent(in) :: a( lda, * )
  1668. real,intent(inout) :: b( ldb, * )
  1669. !$omp declare variant( strsm_batch_strided:mkl_blas_strsm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1670. !$omp declare variant( strsm_batch_strided:mkl_blas_strsm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  1671. end subroutine strsm_batch_strided
  1672. subroutine ztrsm_batch_strided ( side, uplo, trans, diag, m, n, alpha, a, lda, stridea, &
  1673. &b, ldb, strideb, batch_size ) BIND(C)
  1674. character*1,intent(in) :: side, uplo, trans, diag
  1675. integer,intent(in) :: m, n, lda, stridea, ldb, strideb, batch_size
  1676. complex*16,intent(in) :: alpha
  1677. complex*16,intent(in) :: a( lda, * )
  1678. complex*16,intent(inout) :: b( ldb, * )
  1679. !$omp declare variant( ztrsm_batch_strided:mkl_blas_ztrsm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1680. !$omp declare variant( ztrsm_batch_strided:mkl_blas_ztrsm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  1681. end subroutine ztrsm_batch_strided
  1682. subroutine ctrsm_batch_strided ( side, uplo, trans, diag, m, n, alpha, a, lda, stridea, &
  1683. &b, ldb, strideb, batch_size ) BIND(C)
  1684. character*1,intent(in) :: side, uplo, trans, diag
  1685. integer,intent(in) :: m, n, lda, stridea, ldb, strideb, batch_size
  1686. complex,intent(in) :: alpha
  1687. complex,intent(in) :: a( lda, * )
  1688. complex,intent(inout) :: b( ldb, * )
  1689. !$omp declare variant( ctrsm_batch_strided:mkl_blas_ctrsm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1690. !$omp declare variant( ctrsm_batch_strided:mkl_blas_ctrsm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  1691. end subroutine ctrsm_batch_strided
  1692. subroutine ssyrk_batch_strided ( uplo, trans, n, k, alpha, a, lda, stridea, &
  1693. beta, c, ldc, stridec, batch_size ) BIND(C)
  1694. character*1,intent(in) :: uplo, trans
  1695. integer,intent(in) :: n, k, lda, stridea, ldc, stridec, batch_size
  1696. real,intent(in) :: alpha, beta
  1697. real,intent(in) :: a( lda, * )
  1698. real,intent(inout) :: c( ldc, * )
  1699. !$omp declare variant( ssyrk_batch_strided:mkl_blas_ssyrk_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1700. !$omp declare variant( ssyrk_batch_strided:mkl_blas_ssyrk_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  1701. end subroutine ssyrk_batch_strided
  1702. subroutine dsyrk_batch_strided ( uplo, trans, n, k, alpha, a, lda, stridea, &
  1703. beta, c, ldc, stridec, batch_size ) BIND(C)
  1704. character*1,intent(in) :: uplo, trans
  1705. integer,intent(in) :: n, k, lda, stridea, ldc, stridec, batch_size
  1706. double precision,intent(in) :: alpha, beta
  1707. double precision,intent(in) :: a( lda, * )
  1708. double precision,intent(inout) :: c( ldc, * )
  1709. !$omp declare variant( dsyrk_batch_strided:mkl_blas_dsyrk_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1710. !$omp declare variant( dsyrk_batch_strided:mkl_blas_dsyrk_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  1711. end subroutine dsyrk_batch_strided
  1712. subroutine csyrk_batch_strided ( uplo, trans, n, k, alpha, a, lda, stridea, &
  1713. beta, c, ldc, stridec, batch_size ) BIND(C)
  1714. character*1,intent(in) :: uplo, trans
  1715. integer,intent(in) :: n, k, lda, stridea, ldc, stridec, batch_size
  1716. complex,intent(in) :: alpha, beta
  1717. complex,intent(in) :: a( lda, * )
  1718. complex,intent(inout) :: c( ldc, * )
  1719. !$omp declare variant( csyrk_batch_strided:mkl_blas_csyrk_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1720. !$omp declare variant( csyrk_batch_strided:mkl_blas_csyrk_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  1721. end subroutine csyrk_batch_strided
  1722. subroutine zsyrk_batch_strided ( uplo, trans, n, k, alpha, a, lda, stridea, &
  1723. beta, c, ldc, stridec, batch_size ) BIND(C)
  1724. character*1,intent(in) :: uplo, trans
  1725. integer,intent(in) :: n, k, lda, stridea, ldc, stridec, batch_size
  1726. complex*16,intent(in) :: alpha, beta
  1727. complex*16,intent(in) :: a( lda, * )
  1728. complex*16,intent(inout) :: c( ldc, * )
  1729. !$omp declare variant( zsyrk_batch_strided:mkl_blas_zsyrk_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1730. !$omp declare variant( zsyrk_batch_strided:mkl_blas_zsyrk_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  1731. end subroutine zsyrk_batch_strided
  1732. subroutine dgemm_batch_strided ( transa, transb, m, n, k, alpha, a, lda, stridea, &
  1733. &b, ldb, strideb, beta, c, ldc, stridec, batch_size ) BIND(C)
  1734. character*1,intent(in) :: transa, transb
  1735. integer,intent(in) :: m, n, k, lda, stridea, ldb, strideb, ldc, stridec, batch_size
  1736. double precision,intent(in) :: alpha, beta
  1737. double precision,intent(in) :: a( lda, * ), b( ldb, * )
  1738. double precision,intent(inout) :: c( ldc, * )
  1739. !$omp declare variant( dgemm_batch_strided:mkl_blas_dgemm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1740. !$omp declare variant( dgemm_batch_strided:mkl_blas_dgemm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  1741. end subroutine dgemm_batch_strided
  1742. subroutine sgemm_batch_strided ( transa, transb, m, n, k, alpha, a, lda, stridea, &
  1743. &b, ldb, strideb, beta, c, ldc, stridec, batch_size ) BIND(C)
  1744. character*1,intent(in) :: transa, transb
  1745. integer,intent(in) :: m, n, k, lda, stridea, ldb, strideb, ldc, stridec, batch_size
  1746. real,intent(in) :: alpha, beta
  1747. real,intent(in) :: a( lda, * ), b( ldb, * )
  1748. real,intent(inout) :: c( ldc, * )
  1749. !$omp declare variant( sgemm_batch_strided:mkl_blas_sgemm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1750. !$omp declare variant( sgemm_batch_strided:mkl_blas_sgemm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  1751. end subroutine sgemm_batch_strided
  1752. subroutine zgemm_batch_strided ( transa, transb, m, n, k, alpha, a, lda, stridea, &
  1753. &b, ldb, strideb, beta, c, ldc, stridec, batch_size ) BIND(C)
  1754. character*1,intent(in) :: transa, transb
  1755. integer,intent(in) :: m, n, k, lda, stridea, ldb, strideb, ldc, stridec, batch_size
  1756. complex*16,intent(in) :: alpha, beta
  1757. complex*16,intent(in) :: a( lda, * ), b( ldb, * )
  1758. complex*16,intent(inout) :: c( ldc, * )
  1759. !$omp declare variant( zgemm_batch_strided:mkl_blas_zgemm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1760. !$omp declare variant( zgemm_batch_strided:mkl_blas_zgemm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  1761. end subroutine zgemm_batch_strided
  1762. subroutine cgemm_batch_strided ( transa, transb, m, n, k, alpha, a, lda, stridea, &
  1763. &b, ldb, strideb, beta, c, ldc, stridec, batch_size ) BIND(C)
  1764. character*1,intent(in) :: transa, transb
  1765. integer,intent(in) :: m, n, k, lda, stridea, ldb, strideb, ldc, stridec, batch_size
  1766. complex,intent(in) :: alpha, beta
  1767. complex,intent(in) :: a( lda, * ), b( ldb, * )
  1768. complex,intent(inout) :: c( ldc, * )
  1769. !$omp declare variant( cgemm_batch_strided:mkl_blas_cgemm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1770. !$omp declare variant( cgemm_batch_strided:mkl_blas_cgemm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  1771. end subroutine cgemm_batch_strided
  1772. subroutine daxpy_batch_strided ( n, alpha, x, incx, stridex, &
  1773. &y, incy, stridey, batch_size ) BIND(C)
  1774. double precision,intent(in) :: alpha
  1775. integer,intent(in) :: incx, stridex, incy, stridey, batch_size, n
  1776. double precision,intent(in) :: x( * )
  1777. double precision,intent(inout) :: y( * )
  1778. !$omp declare variant( daxpy_batch_strided:mkl_blas_daxpy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1779. !$omp declare variant( daxpy_batch_strided:mkl_blas_daxpy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1780. end subroutine daxpy_batch_strided
  1781. subroutine saxpy_batch_strided ( n, alpha, x, incx, stridex, &
  1782. &y, incy, stridey, batch_size ) BIND(C)
  1783. real,intent(in) :: alpha
  1784. integer,intent(in) :: incx, stridex, incy, stridey, batch_size, n
  1785. real,intent(in) :: x( * )
  1786. real,intent(inout) :: y( * )
  1787. !$omp declare variant( saxpy_batch_strided:mkl_blas_saxpy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1788. !$omp declare variant( saxpy_batch_strided:mkl_blas_saxpy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1789. end subroutine saxpy_batch_strided
  1790. subroutine zaxpy_batch_strided ( n, alpha, x, incx, stridex, &
  1791. &y, incy, stridey, batch_size ) BIND(C)
  1792. complex*16,intent(in) :: alpha
  1793. integer,intent(in) :: incx, stridex, incy, stridey, batch_size, n
  1794. complex*16,intent(in) :: x( * )
  1795. complex*16,intent(inout) :: y( * )
  1796. !$omp declare variant( zaxpy_batch_strided:mkl_blas_zaxpy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1797. !$omp declare variant( zaxpy_batch_strided:mkl_blas_zaxpy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1798. end subroutine zaxpy_batch_strided
  1799. subroutine caxpy_batch_strided ( n, alpha, x, incx, stridex, &
  1800. &y, incy, stridey, batch_size ) BIND(C)
  1801. complex,intent(in) :: alpha
  1802. integer,intent(in) :: incx, stridex, incy, stridey, batch_size, n
  1803. complex,intent(in) :: x( * )
  1804. complex,intent(inout) :: y( * )
  1805. !$omp declare variant( caxpy_batch_strided:mkl_blas_caxpy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1806. !$omp declare variant( caxpy_batch_strided:mkl_blas_caxpy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1807. end subroutine caxpy_batch_strided
  1808. subroutine scopy_batch_strided ( n, x, incx, stridex, &
  1809. &y, incy, stridey, batch_size ) BIND(C)
  1810. integer,intent(in) :: incx, stridex, incy, stridey, batch_size, n
  1811. real,intent(in) :: x( * )
  1812. real,intent(inout) :: y( * )
  1813. !$omp declare variant( scopy_batch_strided:mkl_blas_scopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1814. !$omp declare variant( scopy_batch_strided:mkl_blas_scopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1815. end subroutine scopy_batch_strided
  1816. subroutine dcopy_batch_strided ( n, x, incx, stridex, &
  1817. &y, incy, stridey, batch_size ) BIND(C)
  1818. integer,intent(in) :: incx, stridex, incy, stridey, batch_size, n
  1819. double precision,intent(in) :: x( * )
  1820. double precision,intent(inout) :: y( * )
  1821. !$omp declare variant( dcopy_batch_strided:mkl_blas_dcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1822. !$omp declare variant( dcopy_batch_strided:mkl_blas_dcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1823. end subroutine dcopy_batch_strided
  1824. subroutine ccopy_batch_strided ( n, x, incx, stridex, &
  1825. &y, incy, stridey, batch_size ) BIND(C)
  1826. integer,intent(in) :: incx, stridex, incy, stridey, batch_size, n
  1827. complex,intent(in) :: x( * )
  1828. complex,intent(inout) :: y( * )
  1829. !$omp declare variant( ccopy_batch_strided:mkl_blas_ccopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1830. !$omp declare variant( ccopy_batch_strided:mkl_blas_ccopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1831. end subroutine ccopy_batch_strided
  1832. subroutine zcopy_batch_strided ( n, x, incx, stridex, &
  1833. &y, incy, stridey, batch_size ) BIND(C)
  1834. integer,intent(in) :: incx, stridex, incy, stridey, batch_size, n
  1835. complex*16,intent(in) :: x( * )
  1836. complex*16,intent(inout) :: y( * )
  1837. !$omp declare variant( zcopy_batch_strided:mkl_blas_zcopy_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1838. !$omp declare variant( zcopy_batch_strided:mkl_blas_zcopy_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x,y)
  1839. end subroutine zcopy_batch_strided
  1840. subroutine dgemv_batch_strided ( trans, m, n, alpha, a, lda, stridea, x, incx, &
  1841. &stridex, beta, y, incy, stridey, batch_size ) BIND(C)
  1842. double precision,intent(in) :: alpha, beta
  1843. integer,intent(in) :: incx, incy, lda, m, n
  1844. integer,intent(in) :: stridea, stridex, stridey, batch_size
  1845. character*1,intent(in) :: trans
  1846. double precision,intent(in) :: a( lda, * ), x( * )
  1847. double precision,intent(inout) :: y( * )
  1848. !$omp declare variant( dgemv_batch_strided:mkl_blas_dgemv_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1849. !$omp declare variant( dgemv_batch_strided:mkl_blas_dgemv_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  1850. end subroutine dgemv_batch_strided
  1851. subroutine sgemv_batch_strided ( trans, m, n, alpha, a, lda, stridea, x, incx, &
  1852. &stridex, beta, y, incy, stridey, batch_size ) BIND(C)
  1853. real,intent(in) :: alpha, beta
  1854. integer,intent(in) :: incx, incy, lda, m, n
  1855. integer,intent(in) :: stridea, stridex, stridey, batch_size
  1856. character*1,intent(in) :: trans
  1857. real,intent(in) :: a( lda, * ), x( * )
  1858. real,intent(inout) :: y( * )
  1859. !$omp declare variant( sgemv_batch_strided:mkl_blas_sgemv_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1860. !$omp declare variant( sgemv_batch_strided:mkl_blas_sgemv_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  1861. end subroutine sgemv_batch_strided
  1862. subroutine zgemv_batch_strided ( trans, m, n, alpha, a, lda, stridea, x, incx, &
  1863. &stridex, beta, y, incy, stridey, batch_size ) BIND(C)
  1864. complex*16,intent(in) :: alpha, beta
  1865. integer,intent(in) :: incx, incy, lda, m, n
  1866. integer,intent(in) :: stridea, stridex, stridey, batch_size
  1867. character*1,intent(in) :: trans
  1868. complex*16,intent(in) :: a( lda, * ), x( * )
  1869. complex*16,intent(inout) :: y( * )
  1870. !$omp declare variant( zgemv_batch_strided:mkl_blas_zgemv_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1871. !$omp declare variant( zgemv_batch_strided:mkl_blas_zgemv_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  1872. end subroutine zgemv_batch_strided
  1873. subroutine cgemv_batch_strided ( trans, m, n, alpha, a, lda, stridea, x, incx, &
  1874. &stridex, beta, y, incy, stridey, batch_size ) BIND(C)
  1875. complex,intent(in) :: alpha, beta
  1876. integer,intent(in) :: incx, incy, lda, m, n
  1877. integer,intent(in) :: stridea, stridex, stridey, batch_size
  1878. character*1,intent(in) :: trans
  1879. complex,intent(in) :: a( lda, * ), x( * )
  1880. complex,intent(inout) :: y( * )
  1881. !$omp declare variant( cgemv_batch_strided:mkl_blas_cgemv_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1882. !$omp declare variant( cgemv_batch_strided:mkl_blas_cgemv_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  1883. end subroutine cgemv_batch_strided
  1884. subroutine ddgmm_batch_strided ( side, m, n, a, lda, stridea, x, incx, &
  1885. &stridex, c, ldc, stridec, batch_size ) BIND(C)
  1886. integer,intent(in) :: incx, ldc, lda, m, n
  1887. integer,intent(in) :: stridea, stridex, stridec, batch_size
  1888. character*1,intent(in) :: side
  1889. double precision,intent(in) :: a( lda, * ), x( * )
  1890. double precision,intent(inout) :: c( ldc, * )
  1891. !$omp declare variant( ddgmm_batch_strided:mkl_blas_ddgmm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1892. !$omp declare variant( ddgmm_batch_strided:mkl_blas_ddgmm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,c)
  1893. end subroutine ddgmm_batch_strided
  1894. subroutine sdgmm_batch_strided ( side, m, n, a, lda, stridea, x, incx, &
  1895. &stridex, c, ldc, stridec, batch_size ) BIND(C)
  1896. integer,intent(in) :: incx, ldc, lda, m, n
  1897. integer,intent(in) :: stridea, stridex, stridec, batch_size
  1898. character*1,intent(in) :: side
  1899. real,intent(in) :: a( lda, * ), x( * )
  1900. real,intent(inout) :: c( ldc, * )
  1901. !$omp declare variant( sdgmm_batch_strided:mkl_blas_sdgmm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1902. !$omp declare variant( sdgmm_batch_strided:mkl_blas_sdgmm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,c)
  1903. end subroutine sdgmm_batch_strided
  1904. subroutine zdgmm_batch_strided ( side, m, n, a, lda, stridea, x, incx, &
  1905. &stridex, c, ldc, stridec, batch_size ) BIND(C)
  1906. integer,intent(in) :: incx, ldc, lda, m, n
  1907. integer,intent(in) :: stridea, stridex, stridec, batch_size
  1908. character*1,intent(in) :: side
  1909. complex*16,intent(in) :: a( lda, * ), x( * )
  1910. complex*16,intent(inout) :: c( ldc, * )
  1911. !$omp declare variant( zdgmm_batch_strided:mkl_blas_zdgmm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1912. !$omp declare variant( zdgmm_batch_strided:mkl_blas_zdgmm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,c)
  1913. end subroutine zdgmm_batch_strided
  1914. subroutine cdgmm_batch_strided ( side, m, n, a, lda, stridea, x, incx, &
  1915. &stridex, c, ldc, stridec, batch_size ) BIND(C)
  1916. integer,intent(in) :: incx, ldc, lda, m, n
  1917. integer,intent(in) :: stridea, stridex, stridec, batch_size
  1918. character*1,intent(in) :: side
  1919. complex,intent(in) :: a( lda, * ), x( * )
  1920. complex,intent(inout) :: c( ldc, * )
  1921. !$omp declare variant( cdgmm_batch_strided:mkl_blas_cdgmm_batch_strided_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1922. !$omp declare variant( cdgmm_batch_strided:mkl_blas_cdgmm_batch_strided_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,c)
  1923. end subroutine cdgmm_batch_strided
  1924. subroutine daxpy_batch(n_array,alpha_array,x_array,incx_array, &
  1925. &y_array,incy_array,group_count,group_size_array)
  1926. use, intrinsic :: ISO_C_BINDING
  1927. double precision,intent(in) :: alpha_array(*)
  1928. integer,intent(in) :: incx_array(*),incy_array(*),n_array(*)
  1929. integer,intent(in) :: group_count,group_size_array(*)
  1930. integer(KIND=C_INTPTR_T),intent(in) :: x_array(*)
  1931. integer(KIND=C_INTPTR_T),intent(inout) :: y_array(*)
  1932. !$omp declare variant( daxpy_batch:mkl_blas_daxpy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1933. !$omp declare variant( daxpy_batch:mkl_blas_daxpy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x_array,y_array)
  1934. end subroutine daxpy_batch
  1935. subroutine saxpy_batch(n_array,alpha_array,x_array,incx_array, &
  1936. &y_array,incy_array,group_count,group_size_array)
  1937. use, intrinsic :: ISO_C_BINDING
  1938. real,intent(in) :: alpha_array(*)
  1939. integer,intent(in) :: incx_array(*),incy_array(*),n_array(*)
  1940. integer,intent(in) :: group_count,group_size_array(*)
  1941. integer(KIND=C_INTPTR_T),intent(in) :: x_array(*)
  1942. integer(KIND=C_INTPTR_T),intent(inout) :: y_array(*)
  1943. !$omp declare variant( saxpy_batch:mkl_blas_saxpy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1944. !$omp declare variant( saxpy_batch:mkl_blas_saxpy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x_array,y_array)
  1945. end subroutine saxpy_batch
  1946. subroutine zaxpy_batch(n_array,alpha_array,x_array,incx_array, &
  1947. &y_array,incy_array,group_count,group_size_array)
  1948. use, intrinsic :: ISO_C_BINDING
  1949. complex*16,intent(in) :: alpha_array(*)
  1950. integer,intent(in) :: incx_array(*),incy_array(*),n_array(*)
  1951. integer,intent(in) :: group_count,group_size_array(*)
  1952. integer(KIND=C_INTPTR_T),intent(in) :: x_array(*)
  1953. integer(KIND=C_INTPTR_T),intent(inout) :: y_array(*)
  1954. !$omp declare variant( zaxpy_batch:mkl_blas_zaxpy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1955. !$omp declare variant( zaxpy_batch:mkl_blas_zaxpy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x_array,y_array)
  1956. end subroutine zaxpy_batch
  1957. subroutine caxpy_batch(n_array,alpha_array,x_array,incx_array, &
  1958. &y_array,incy_array,group_count,group_size_array)
  1959. use, intrinsic :: ISO_C_BINDING
  1960. complex,intent(in) :: alpha_array(*)
  1961. integer,intent(in) :: incx_array(*),incy_array(*),n_array(*)
  1962. integer,intent(in) :: group_count,group_size_array(*)
  1963. integer(KIND=C_INTPTR_T),intent(in) :: x_array(*)
  1964. integer(KIND=C_INTPTR_T),intent(inout) :: y_array(*)
  1965. !$omp declare variant( caxpy_batch:mkl_blas_caxpy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1966. !$omp declare variant( caxpy_batch:mkl_blas_caxpy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x_array,y_array)
  1967. end subroutine caxpy_batch
  1968. subroutine scopy_batch(n_array,x_array,incx_array, &
  1969. &y_array,incy_array,group_count,group_size_array)
  1970. use, intrinsic :: ISO_C_BINDING
  1971. integer,intent(in) :: incx_array(*),incy_array(*),n_array(*)
  1972. integer,intent(in) :: group_count,group_size_array(*)
  1973. integer(KIND=C_INTPTR_T),intent(in) :: x_array(*)
  1974. integer(KIND=C_INTPTR_T),intent(inout) :: y_array(*)
  1975. !$omp declare variant( scopy_batch:mkl_blas_scopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1976. !$omp declare variant( scopy_batch:mkl_blas_scopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x_array,y_array)
  1977. end subroutine scopy_batch
  1978. subroutine dcopy_batch(n_array,x_array,incx_array, &
  1979. &y_array,incy_array,group_count,group_size_array)
  1980. use, intrinsic :: ISO_C_BINDING
  1981. integer,intent(in) :: incx_array(*),incy_array(*),n_array(*)
  1982. integer,intent(in) :: group_count,group_size_array(*)
  1983. integer(KIND=C_INTPTR_T),intent(in) :: x_array(*)
  1984. integer(KIND=C_INTPTR_T),intent(inout) :: y_array(*)
  1985. !$omp declare variant( dcopy_batch:mkl_blas_dcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1986. !$omp declare variant( dcopy_batch:mkl_blas_dcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x_array,y_array)
  1987. end subroutine dcopy_batch
  1988. subroutine ccopy_batch(n_array,x_array,incx_array, &
  1989. &y_array,incy_array,group_count,group_size_array)
  1990. use, intrinsic :: ISO_C_BINDING
  1991. integer,intent(in) :: incx_array(*),incy_array(*),n_array(*)
  1992. integer,intent(in) :: group_count,group_size_array(*)
  1993. integer(KIND=C_INTPTR_T),intent(in) :: x_array(*)
  1994. integer(KIND=C_INTPTR_T),intent(inout) :: y_array(*)
  1995. !$omp declare variant( ccopy_batch:mkl_blas_ccopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  1996. !$omp declare variant( ccopy_batch:mkl_blas_ccopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x_array,y_array)
  1997. end subroutine ccopy_batch
  1998. subroutine zcopy_batch(n_array,x_array,incx_array, &
  1999. &y_array,incy_array,group_count,group_size_array)
  2000. use, intrinsic :: ISO_C_BINDING
  2001. integer,intent(in) :: incx_array(*),incy_array(*),n_array(*)
  2002. integer,intent(in) :: group_count,group_size_array(*)
  2003. integer(KIND=C_INTPTR_T),intent(in) :: x_array(*)
  2004. integer(KIND=C_INTPTR_T),intent(inout) :: y_array(*)
  2005. !$omp declare variant( zcopy_batch:mkl_blas_zcopy_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2006. !$omp declare variant( zcopy_batch:mkl_blas_zcopy_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:x_array,y_array)
  2007. end subroutine zcopy_batch
  2008. subroutine dtrsm_batch ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  2009. &b, ldb, group_count, group_size ) BIND(C)
  2010. use, intrinsic :: ISO_C_BINDING
  2011. character*1,intent(in) :: side(*), uplo(*), trans(*), diag(*)
  2012. integer,intent(in) :: m(*), n(*), lda(*), ldb(*)
  2013. integer,intent(in) :: group_size(*), group_count
  2014. double precision,intent(in) :: alpha(*)
  2015. integer(KIND=C_INTPTR_T),intent(in) :: a( * )
  2016. integer(KIND=C_INTPTR_T),intent(inout) :: b( * )
  2017. !$omp declare variant( dtrsm_batch:mkl_blas_dtrsm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2018. !$omp declare variant( dtrsm_batch:mkl_blas_dtrsm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  2019. end subroutine dtrsm_batch
  2020. subroutine strsm_batch ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  2021. &b, ldb, group_count, group_size ) BIND(C)
  2022. use, intrinsic :: ISO_C_BINDING
  2023. character*1,intent(in) :: side(*), uplo(*), trans(*), diag(*)
  2024. integer,intent(in) :: m(*), n(*), lda(*), ldb(*)
  2025. integer,intent(in) :: group_size(*), group_count
  2026. real,intent(in) :: alpha(*)
  2027. integer(KIND=C_INTPTR_T),intent(in) :: a( * )
  2028. integer(KIND=C_INTPTR_T),intent(inout) :: b( * )
  2029. !$omp declare variant( strsm_batch:mkl_blas_strsm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2030. !$omp declare variant( strsm_batch:mkl_blas_strsm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  2031. end subroutine strsm_batch
  2032. subroutine ztrsm_batch ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  2033. &b, ldb, group_count, group_size ) BIND(C)
  2034. use, intrinsic :: ISO_C_BINDING
  2035. character*1,intent(in) :: side(*), uplo(*), trans(*), diag(*)
  2036. integer,intent(in) :: m(*), n(*), lda(*), ldb(*)
  2037. integer,intent(in) :: group_size(*), group_count
  2038. complex*16,intent(in) :: alpha(*)
  2039. integer(KIND=C_INTPTR_T),intent(in) :: a( * )
  2040. integer(KIND=C_INTPTR_T),intent(inout) :: b( * )
  2041. !$omp declare variant( ztrsm_batch:mkl_blas_ztrsm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2042. !$omp declare variant( ztrsm_batch:mkl_blas_ztrsm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  2043. end subroutine ztrsm_batch
  2044. subroutine ctrsm_batch ( side, uplo, trans, diag, m, n, alpha, a, lda, &
  2045. &b, ldb, group_count, group_size ) BIND(C)
  2046. use, intrinsic :: ISO_C_BINDING
  2047. character*1,intent(in) :: side(*), uplo(*), trans(*), diag(*)
  2048. integer,intent(in) :: m(*), n(*), lda(*), ldb(*)
  2049. integer,intent(in) :: group_size(*), group_count
  2050. complex,intent(in) :: alpha(*)
  2051. integer(KIND=C_INTPTR_T),intent(in) :: a( * )
  2052. integer(KIND=C_INTPTR_T),intent(inout) :: b( * )
  2053. !$omp declare variant( ctrsm_batch:mkl_blas_ctrsm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2054. !$omp declare variant( ctrsm_batch:mkl_blas_ctrsm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b)
  2055. end subroutine ctrsm_batch
  2056. subroutine dsyrk_batch ( uplo, trans, n, k, alpha, a, lda, &
  2057. beta, c, ldc, group_count, group_size ) BIND(C)
  2058. use, intrinsic :: ISO_C_BINDING
  2059. character*1,intent(in) :: uplo(*), trans(*)
  2060. integer,intent(in) :: n(*), k(*), lda(*), ldc(*)
  2061. integer,intent(in) :: group_size(*), group_count
  2062. double precision,intent(in) :: alpha(*), beta(*)
  2063. integer(KIND=C_INTPTR_T),intent(in) :: a( * )
  2064. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2065. !$omp declare variant( dsyrk_batch:mkl_blas_dsyrk_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2066. !$omp declare variant( dsyrk_batch:mkl_blas_dsyrk_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  2067. end subroutine dsyrk_batch
  2068. subroutine ssyrk_batch ( uplo, trans, n, k, alpha, a, lda, &
  2069. beta, c, ldc, group_count, group_size ) BIND(C)
  2070. use, intrinsic :: ISO_C_BINDING
  2071. character*1,intent(in) :: uplo(*), trans(*)
  2072. integer,intent(in) :: n(*), k(*), lda(*), ldc(*)
  2073. integer,intent(in) :: group_size(*), group_count
  2074. real,intent(in) :: alpha(*), beta(*)
  2075. integer(KIND=C_INTPTR_T),intent(in) :: a( * )
  2076. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2077. !$omp declare variant( ssyrk_batch:mkl_blas_ssyrk_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2078. !$omp declare variant( ssyrk_batch:mkl_blas_ssyrk_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  2079. end subroutine ssyrk_batch
  2080. subroutine zsyrk_batch ( uplo, trans, n, k, alpha, a, lda, &
  2081. beta, c, ldc, group_count, group_size ) BIND(C)
  2082. use, intrinsic :: ISO_C_BINDING
  2083. character*1,intent(in) :: uplo(*), trans(*)
  2084. integer,intent(in) :: n(*), k(*), lda(*), ldc(*)
  2085. integer,intent(in) :: group_size(*), group_count
  2086. complex*16,intent(in) :: alpha(*), beta(*)
  2087. integer(KIND=C_INTPTR_T),intent(in) :: a( * )
  2088. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2089. !$omp declare variant( zsyrk_batch:mkl_blas_zsyrk_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2090. !$omp declare variant( zsyrk_batch:mkl_blas_zsyrk_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  2091. end subroutine zsyrk_batch
  2092. subroutine csyrk_batch ( uplo, trans, n, k, alpha, a, lda, &
  2093. beta, c, ldc, group_count, group_size ) BIND(C)
  2094. use, intrinsic :: ISO_C_BINDING
  2095. character*1,intent(in) :: uplo(*), trans(*)
  2096. integer,intent(in) :: n(*), k(*), lda(*), ldc(*)
  2097. integer,intent(in) :: group_size(*), group_count
  2098. complex,intent(in) :: alpha(*), beta(*)
  2099. integer(KIND=C_INTPTR_T),intent(in) :: a( * )
  2100. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2101. !$omp declare variant( csyrk_batch:mkl_blas_csyrk_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2102. !$omp declare variant( csyrk_batch:mkl_blas_csyrk_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,c)
  2103. end subroutine csyrk_batch
  2104. subroutine dgemm_batch ( transa, transb, m, n, k, alpha, a, lda, &
  2105. &b, ldb, beta, c, ldc, group_count, group_size ) BIND(C)
  2106. use, intrinsic :: ISO_C_BINDING
  2107. character*1,intent(in) :: transa(*), transb(*)
  2108. integer,intent(in) :: m(*), n(*), k(*), lda(*), ldb(*), ldc(*)
  2109. integer,intent(in) :: group_size(*), group_count
  2110. double precision,intent(in) :: alpha(*), beta(*)
  2111. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), b( * )
  2112. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2113. !$omp declare variant( dgemm_batch:mkl_blas_dgemm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2114. !$omp declare variant( dgemm_batch:mkl_blas_dgemm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  2115. end subroutine dgemm_batch
  2116. subroutine sgemm_batch ( transa, transb, m, n, k, alpha, a, lda, &
  2117. &b, ldb, beta, c, ldc, group_count, group_size ) BIND(C)
  2118. use, intrinsic :: ISO_C_BINDING
  2119. character*1,intent(in) :: transa(*), transb(*)
  2120. integer,intent(in) :: m(*), n(*), k(*), lda(*), ldb(*), ldc(*)
  2121. integer,intent(in) :: group_size(*), group_count
  2122. real,intent(in) :: alpha(*), beta(*)
  2123. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), b( * )
  2124. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2125. !$omp declare variant( sgemm_batch:mkl_blas_sgemm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2126. !$omp declare variant( sgemm_batch:mkl_blas_sgemm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  2127. end subroutine sgemm_batch
  2128. subroutine zgemm_batch ( transa, transb, m, n, k, alpha, a, lda, &
  2129. &b, ldb, beta, c, ldc, group_count, group_size ) BIND(C)
  2130. use, intrinsic :: ISO_C_BINDING
  2131. character*1,intent(in) :: transa(*), transb(*)
  2132. integer,intent(in) :: m(*), n(*), k(*), lda(*), ldb(*), ldc(*)
  2133. integer,intent(in) :: group_size(*), group_count
  2134. complex*16,intent(in) :: alpha(*), beta(*)
  2135. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), b( * )
  2136. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2137. !$omp declare variant( zgemm_batch:mkl_blas_zgemm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2138. !$omp declare variant( zgemm_batch:mkl_blas_zgemm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  2139. end subroutine zgemm_batch
  2140. subroutine cgemm_batch ( transa, transb, m, n, k, alpha, a, lda, &
  2141. &b, ldb, beta, c, ldc, group_count, group_size ) BIND(C)
  2142. use, intrinsic :: ISO_C_BINDING
  2143. character*1,intent(in) :: transa(*), transb(*)
  2144. integer,intent(in) :: m(*), n(*), k(*), lda(*), ldb(*), ldc(*)
  2145. integer,intent(in) :: group_size(*), group_count
  2146. complex,intent(in) :: alpha(*), beta(*)
  2147. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), b( * )
  2148. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2149. !$omp declare variant( cgemm_batch:mkl_blas_cgemm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2150. !$omp declare variant( cgemm_batch:mkl_blas_cgemm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,b,c)
  2151. end subroutine cgemm_batch
  2152. subroutine dgemv_batch ( trans, m, n, alpha, a, lda, x, incx, &
  2153. &beta, y, incy, group_count, group_size ) BIND(C)
  2154. use, intrinsic :: ISO_C_BINDING
  2155. double precision,intent(in) :: alpha(*), beta(*)
  2156. integer,intent(in) :: incx(*), incy(*), lda(*), m(*), n(*)
  2157. integer,intent(in) :: group_size(*), group_count
  2158. character*1,intent(in) :: trans(*)
  2159. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), x( * )
  2160. integer(KIND=C_INTPTR_T),intent(inout) :: y( * )
  2161. !$omp declare variant( dgemv_batch:mkl_blas_dgemv_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2162. !$omp declare variant( dgemv_batch:mkl_blas_dgemv_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  2163. end subroutine dgemv_batch
  2164. subroutine sgemv_batch ( trans, m, n, alpha, a, lda, x, incx, &
  2165. &beta, y, incy, group_count, group_size ) BIND(C)
  2166. use, intrinsic :: ISO_C_BINDING
  2167. real,intent(in) :: alpha(*), beta(*)
  2168. integer,intent(in) :: incx(*), incy(*), lda(*), m(*), n(*)
  2169. integer,intent(in) :: group_size(*), group_count
  2170. character*1,intent(in) :: trans(*)
  2171. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), x( * )
  2172. integer(KIND=C_INTPTR_T),intent(inout) :: y( * )
  2173. !$omp declare variant( sgemv_batch:mkl_blas_sgemv_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2174. !$omp declare variant( sgemv_batch:mkl_blas_sgemv_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  2175. end subroutine sgemv_batch
  2176. subroutine zgemv_batch ( trans, m, n, alpha, a, lda, x, incx, &
  2177. &beta, y, incy, group_count, group_size ) BIND(C)
  2178. use, intrinsic :: ISO_C_BINDING
  2179. complex*16,intent(in) :: alpha(*), beta(*)
  2180. integer,intent(in) :: incx(*), incy(*), lda(*), m(*), n(*)
  2181. integer,intent(in) :: group_size(*), group_count
  2182. character*1,intent(in) :: trans(*)
  2183. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), x( * )
  2184. integer(KIND=C_INTPTR_T),intent(inout) :: y( * )
  2185. !$omp declare variant( zgemv_batch:mkl_blas_zgemv_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2186. !$omp declare variant( zgemv_batch:mkl_blas_zgemv_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  2187. end subroutine zgemv_batch
  2188. subroutine cgemv_batch ( trans, m, n, alpha, a, lda, x, incx, &
  2189. &beta, y, incy, group_count, group_size ) BIND(C)
  2190. use, intrinsic :: ISO_C_BINDING
  2191. complex,intent(in) :: alpha(*), beta(*)
  2192. integer,intent(in) :: incx(*), incy(*), lda(*), m(*), n(*)
  2193. integer,intent(in) :: group_size(*), group_count
  2194. character*1,intent(in) :: trans(*)
  2195. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), x( * )
  2196. integer(KIND=C_INTPTR_T),intent(inout) :: y( * )
  2197. !$omp declare variant( cgemv_batch:mkl_blas_cgemv_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2198. !$omp declare variant( cgemv_batch:mkl_blas_cgemv_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,y)
  2199. end subroutine cgemv_batch
  2200. subroutine ddgmm_batch ( side, m, n, a, lda, x, incx, &
  2201. &c, ldc, group_count, group_size ) BIND(C)
  2202. use, intrinsic :: ISO_C_BINDING
  2203. integer,intent(in) :: incx(*), ldc(*), lda(*), m(*), n(*)
  2204. integer,intent(in) :: group_size(*), group_count
  2205. character*1,intent(in) :: side(*)
  2206. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), x( * )
  2207. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2208. !$omp declare variant( ddgmm_batch:mkl_blas_ddgmm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2209. !$omp declare variant( ddgmm_batch:mkl_blas_ddgmm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,c)
  2210. end subroutine ddgmm_batch
  2211. subroutine sdgmm_batch ( side, m, n, a, lda, x, incx, &
  2212. &c, ldc, group_count, group_size ) BIND(C)
  2213. use, intrinsic :: ISO_C_BINDING
  2214. integer,intent(in) :: incx(*), ldc(*), lda(*), m(*), n(*)
  2215. integer,intent(in) :: group_size(*), group_count
  2216. character*1,intent(in) :: side(*)
  2217. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), x( * )
  2218. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2219. !$omp declare variant( sdgmm_batch:mkl_blas_sdgmm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2220. !$omp declare variant( sdgmm_batch:mkl_blas_sdgmm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,c)
  2221. end subroutine sdgmm_batch
  2222. subroutine zdgmm_batch ( side, m, n, a, lda, x, incx, &
  2223. &c, ldc, group_count, group_size ) BIND(C)
  2224. use, intrinsic :: ISO_C_BINDING
  2225. integer,intent(in) :: incx(*), ldc(*), lda(*), m(*), n(*)
  2226. integer,intent(in) :: group_size(*), group_count
  2227. character*1,intent(in) :: side(*)
  2228. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), x( * )
  2229. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2230. !$omp declare variant( zdgmm_batch:mkl_blas_zdgmm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2231. !$omp declare variant( zdgmm_batch:mkl_blas_zdgmm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,c)
  2232. end subroutine zdgmm_batch
  2233. subroutine cdgmm_batch ( side, m, n, a, lda, x, incx, &
  2234. &c, ldc, group_count, group_size ) BIND(C)
  2235. use, intrinsic :: ISO_C_BINDING
  2236. integer,intent(in) :: incx(*), ldc(*), lda(*), m(*), n(*)
  2237. integer,intent(in) :: group_size(*), group_count
  2238. character*1,intent(in) :: side(*)
  2239. integer(KIND=C_INTPTR_T),intent(in) :: a( * ), x( * )
  2240. integer(KIND=C_INTPTR_T),intent(inout) :: c( * )
  2241. !$omp declare variant( cdgmm_batch:mkl_blas_cdgmm_batch_omp_offload_ilp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
  2242. !$omp declare variant( cdgmm_batch:mkl_blas_cdgmm_batch_omp_offload_ilp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(prefer_type("sycl","level_zero"),targetsync)) adjust_args(need_device_ptr:a,x,c)
  2243. end subroutine cdgmm_batch
  2244. end interface
  2245. end module onemkl_blas_omp_offload_ilp64