You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 29 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850
  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <link rel="canonical" href="https://openblas.net/docs/build_system/">
  7. <link rel="prev" href="../developers/">
  8. <link rel="next" href="../distributing/">
  9. <link rel="icon" href="../logo.svg">
  10. <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.40">
  11. <title>Build system - OpenBLAS</title>
  12. <link rel="stylesheet" href="../assets/stylesheets/main.8c3ca2c6.min.css">
  13. <link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
  14. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  15. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
  16. <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
  17. <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
  18. </head>
  19. <body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="blue-grey" data-md-color-accent="indigo">
  20. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  21. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  22. <label class="md-overlay" for="__drawer"></label>
  23. <div data-md-component="skip">
  24. <a href="#makefile-dep-graph" class="md-skip">
  25. Skip to content
  26. </a>
  27. </div>
  28. <div data-md-component="announce">
  29. </div>
  30. <header class="md-header md-header--shadow" data-md-component="header">
  31. <nav class="md-header__inner md-grid" aria-label="Header">
  32. <a href=".." title="OpenBLAS" class="md-header__button md-logo" aria-label="OpenBLAS" data-md-component="logo">
  33. <img src="../logo.svg" alt="logo">
  34. </a>
  35. <label class="md-header__button md-icon" for="__drawer">
  36. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
  37. </label>
  38. <div class="md-header__title" data-md-component="header-title">
  39. <div class="md-header__ellipsis">
  40. <div class="md-header__topic">
  41. <span class="md-ellipsis">
  42. OpenBLAS
  43. </span>
  44. </div>
  45. <div class="md-header__topic" data-md-component="header-topic">
  46. <span class="md-ellipsis">
  47. Build system
  48. </span>
  49. </div>
  50. </div>
  51. </div>
  52. <form class="md-header__option" data-md-component="palette">
  53. <input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="blue-grey" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
  54. <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
  55. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
  56. </label>
  57. <input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="blue-grey" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
  58. <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_0" hidden>
  59. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
  60. </label>
  61. </form>
  62. <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
  63. <label class="md-header__button md-icon" for="__search">
  64. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  65. </label>
  66. <div class="md-search" data-md-component="search" role="dialog">
  67. <label class="md-search__overlay" for="__search"></label>
  68. <div class="md-search__inner" role="search">
  69. <form class="md-search__form" name="search">
  70. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
  71. <label class="md-search__icon md-icon" for="__search">
  72. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  73. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  74. </label>
  75. <nav class="md-search__options" aria-label="Search">
  76. <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
  77. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
  78. </button>
  79. </nav>
  80. </form>
  81. <div class="md-search__output">
  82. <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
  83. <div class="md-search-result" data-md-component="search-result">
  84. <div class="md-search-result__meta">
  85. Initializing search
  86. </div>
  87. <ol class="md-search-result__list" role="presentation"></ol>
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. <div class="md-header__source">
  94. <a href="https://github.com/OpenMathLib/OpenBLAS" title="Go to repository" class="md-source" data-md-component="source">
  95. <div class="md-source__icon md-icon">
  96. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
  97. </div>
  98. <div class="md-source__repository">
  99. GitHub
  100. </div>
  101. </a>
  102. </div>
  103. </nav>
  104. </header>
  105. <div class="md-container" data-md-component="container">
  106. <main class="md-main" data-md-component="main">
  107. <div class="md-main__inner md-grid">
  108. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  109. <div class="md-sidebar__scrollwrap">
  110. <div class="md-sidebar__inner">
  111. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  112. <label class="md-nav__title" for="__drawer">
  113. <a href=".." title="OpenBLAS" class="md-nav__button md-logo" aria-label="OpenBLAS" data-md-component="logo">
  114. <img src="../logo.svg" alt="logo">
  115. </a>
  116. OpenBLAS
  117. </label>
  118. <div class="md-nav__source">
  119. <a href="https://github.com/OpenMathLib/OpenBLAS" title="Go to repository" class="md-source" data-md-component="source">
  120. <div class="md-source__icon md-icon">
  121. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
  122. </div>
  123. <div class="md-source__repository">
  124. GitHub
  125. </div>
  126. </a>
  127. </div>
  128. <ul class="md-nav__list" data-md-scrollfix>
  129. <li class="md-nav__item">
  130. <a href=".." class="md-nav__link">
  131. <span class="md-ellipsis">
  132. Home
  133. </span>
  134. </a>
  135. </li>
  136. <li class="md-nav__item">
  137. <a href="../install/" class="md-nav__link">
  138. <span class="md-ellipsis">
  139. Install OpenBLAS
  140. </span>
  141. </a>
  142. </li>
  143. <li class="md-nav__item">
  144. <a href="../user_manual/" class="md-nav__link">
  145. <span class="md-ellipsis">
  146. User manual
  147. </span>
  148. </a>
  149. </li>
  150. <li class="md-nav__item">
  151. <a href="../extensions/" class="md-nav__link">
  152. <span class="md-ellipsis">
  153. Extensions
  154. </span>
  155. </a>
  156. </li>
  157. <li class="md-nav__item">
  158. <a href="../developers/" class="md-nav__link">
  159. <span class="md-ellipsis">
  160. Developer manual
  161. </span>
  162. </a>
  163. </li>
  164. <li class="md-nav__item md-nav__item--active">
  165. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  166. <label class="md-nav__link md-nav__link--active" for="__toc">
  167. <span class="md-ellipsis">
  168. Build system
  169. </span>
  170. <span class="md-nav__icon md-icon"></span>
  171. </label>
  172. <a href="./" class="md-nav__link md-nav__link--active">
  173. <span class="md-ellipsis">
  174. Build system
  175. </span>
  176. </a>
  177. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  178. <label class="md-nav__title" for="__toc">
  179. <span class="md-nav__icon md-icon"></span>
  180. Table of contents
  181. </label>
  182. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  183. <li class="md-nav__item">
  184. <a href="#makefile-dep-graph" class="md-nav__link">
  185. <span class="md-ellipsis">
  186. Makefile dep graph
  187. </span>
  188. </a>
  189. </li>
  190. <li class="md-nav__item">
  191. <a href="#important-variables" class="md-nav__link">
  192. <span class="md-ellipsis">
  193. Important Variables
  194. </span>
  195. </a>
  196. <nav class="md-nav" aria-label="Important Variables">
  197. <ul class="md-nav__list">
  198. <li class="md-nav__item">
  199. <a href="#cpu-related" class="md-nav__link">
  200. <span class="md-ellipsis">
  201. CPU related
  202. </span>
  203. </a>
  204. </li>
  205. <li class="md-nav__item">
  206. <a href="#toolchain-related" class="md-nav__link">
  207. <span class="md-ellipsis">
  208. Toolchain related
  209. </span>
  210. </a>
  211. </li>
  212. <li class="md-nav__item">
  213. <a href="#library-related" class="md-nav__link">
  214. <span class="md-ellipsis">
  215. Library related
  216. </span>
  217. </a>
  218. </li>
  219. </ul>
  220. </nav>
  221. </li>
  222. </ul>
  223. </nav>
  224. </li>
  225. <li class="md-nav__item">
  226. <a href="../distributing/" class="md-nav__link">
  227. <span class="md-ellipsis">
  228. Redistributing OpenBLAS
  229. </span>
  230. </a>
  231. </li>
  232. <li class="md-nav__item">
  233. <a href="../ci/" class="md-nav__link">
  234. <span class="md-ellipsis">
  235. CI jobs
  236. </span>
  237. </a>
  238. </li>
  239. <li class="md-nav__item">
  240. <a href="../about/" class="md-nav__link">
  241. <span class="md-ellipsis">
  242. About
  243. </span>
  244. </a>
  245. </li>
  246. <li class="md-nav__item">
  247. <a href="../faq/" class="md-nav__link">
  248. <span class="md-ellipsis">
  249. FAQ
  250. </span>
  251. </a>
  252. </li>
  253. </ul>
  254. </nav>
  255. </div>
  256. </div>
  257. </div>
  258. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  259. <div class="md-sidebar__scrollwrap">
  260. <div class="md-sidebar__inner">
  261. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  262. <label class="md-nav__title" for="__toc">
  263. <span class="md-nav__icon md-icon"></span>
  264. Table of contents
  265. </label>
  266. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  267. <li class="md-nav__item">
  268. <a href="#makefile-dep-graph" class="md-nav__link">
  269. <span class="md-ellipsis">
  270. Makefile dep graph
  271. </span>
  272. </a>
  273. </li>
  274. <li class="md-nav__item">
  275. <a href="#important-variables" class="md-nav__link">
  276. <span class="md-ellipsis">
  277. Important Variables
  278. </span>
  279. </a>
  280. <nav class="md-nav" aria-label="Important Variables">
  281. <ul class="md-nav__list">
  282. <li class="md-nav__item">
  283. <a href="#cpu-related" class="md-nav__link">
  284. <span class="md-ellipsis">
  285. CPU related
  286. </span>
  287. </a>
  288. </li>
  289. <li class="md-nav__item">
  290. <a href="#toolchain-related" class="md-nav__link">
  291. <span class="md-ellipsis">
  292. Toolchain related
  293. </span>
  294. </a>
  295. </li>
  296. <li class="md-nav__item">
  297. <a href="#library-related" class="md-nav__link">
  298. <span class="md-ellipsis">
  299. Library related
  300. </span>
  301. </a>
  302. </li>
  303. </ul>
  304. </nav>
  305. </li>
  306. </ul>
  307. </nav>
  308. </div>
  309. </div>
  310. </div>
  311. <div class="md-content" data-md-component="content">
  312. <article class="md-content__inner md-typeset">
  313. <h1>Build system</h1>
  314. <p>This page describes the Make-based build, which is the default/authoritative
  315. build method. Note that the OpenBLAS repository also supports building with
  316. CMake (not described here) - that generally works and is tested, however there
  317. may be small differences between the Make and CMake builds.</p>
  318. <div class="admonition warning">
  319. <p class="admonition-title">Warning</p>
  320. <p>This page is made by someone who is not the developer and should not be considered as an official documentation of the build system. For getting the full picture, it is best to read the Makefiles and understand them yourself.</p>
  321. </div>
  322. <h2 id="makefile-dep-graph">Makefile dep graph</h2>
  323. <div class="highlight"><pre><span></span><code>Makefile
  324. |
  325. |----- Makefile.system # !!! this is included by many of the Makefiles in the subdirectories !!!
  326. | |
  327. | |===== Makefile.prebuild # This is triggered (not included) once by Makefile.system
  328. | | | # and runs before any of the actual library code is built.
  329. | | | # (builds and runs the &quot;getarch&quot; tool for cpu identification,
  330. | | | # runs the compiler detection scripts c_check and f_check)
  331. | | |
  332. | | ----- (Makefile.conf) [ either this or Makefile_kernel.conf is generated ]
  333. | | | { Makefile.system#L243 }
  334. | | ----- (Makefile_kernel.conf) [ temporary Makefile.conf during DYNAMIC_ARCH builds ]
  335. | |
  336. | |----- Makefile.rule # defaults for build options that can be given on the make command line
  337. | |
  338. | |----- Makefile.$(ARCH) # architecture-specific compiler options and OpenBLAS buffer size values
  339. |
  340. |~~~~~ exports/
  341. |
  342. |~~~~~ test/
  343. |
  344. |~~~~~ utest/
  345. |
  346. |~~~~~ ctest/
  347. |
  348. |~~~~~ cpp_thread_test/
  349. |
  350. |~~~~~ kernel/
  351. |
  352. |~~~~~ ${SUBDIRS}
  353. |
  354. |~~~~~ ${BLASDIRS}
  355. |
  356. |~~~~~ ${NETLIB_LAPACK_DIR}{,/timing,/testing/{EIG,LIN}}
  357. |
  358. |~~~~~ relapack/
  359. </code></pre></div>
  360. <h2 id="important-variables">Important Variables</h2>
  361. <p>Most of the tunable variables are found in <a href="https://github.com/xianyi/OpenBLAS/blob/develop/Makefile.rule">Makefile.rule</a>, along with their detailed descriptions.<br/>
  362. Most of the variables are detected automatically in <a href="https://github.com/xianyi/OpenBLAS/blob/develop/Makefile.prebuild">Makefile.prebuild</a>, if they are not set in the environment.</p>
  363. <h3 id="cpu-related">CPU related</h3>
  364. <div class="highlight"><pre><span></span><code>ARCH - Target architecture (eg. x86_64)
  365. TARGET - Target CPU architecture, in case of DYNAMIC_ARCH=1 means library will not be usable on less capable CPUs
  366. TARGET_CORE - TARGET_CORE will override TARGET internally during each cpu-specific cycle of the build for DYNAMIC_ARCH
  367. DYNAMIC_ARCH - For building library for multiple TARGETs (does not lose any optimizations, but increases library size)
  368. DYNAMIC_LIST - optional user-provided subset of the DYNAMIC_CORE list in Makefile.system
  369. </code></pre></div>
  370. <h3 id="toolchain-related">Toolchain related</h3>
  371. <div class="highlight"><pre><span></span><code>CC - TARGET C compiler used for compilation (can be cross-toolchains)
  372. FC - TARGET Fortran compiler used for compilation (can be cross-toolchains, set NOFORTRAN=1 if used cross-toolchain has no fortran compiler)
  373. AR, AS, LD, RANLIB - TARGET toolchain helpers used for compilation (can be cross-toolchains)
  374. HOSTCC - compiler of build machine, needed to create proper config files for target architecture
  375. HOST_CFLAGS - flags for build machine compiler
  376. </code></pre></div>
  377. <h3 id="library-related">Library related</h3>
  378. <div class="highlight"><pre><span></span><code>BINARY - 32/64 bit library
  379. BUILD_SHARED - Create shared library
  380. BUILD_STATIC - Create static library
  381. QUAD_PRECISION - enable support for IEEE quad precision [ largely unimplemented leftover from GotoBLAS, do not use ]
  382. EXPRECISION - Obsolete option to use float80 of SSE on BSD-like systems
  383. INTERFACE64 - Build with 64bit integer representations to support large array index values [ incompatible with standard API ]
  384. BUILD_SINGLE - build the single-precision real functions of BLAS [and optionally LAPACK]
  385. BUILD_DOUBLE - build the double-precision real functions
  386. BUILD_COMPLEX - build the single-precision complex functions
  387. BUILD_COMPLEX16 - build the double-precision complex functions
  388. (all four types are included in the build by default when none was specifically selected)
  389. BUILD_BFLOAT16 - build the &quot;half precision brainfloat&quot; real functions
  390. USE_THREAD - Use a multithreading backend (default to pthread)
  391. USE_LOCKING - implement locking for thread safety even when USE_THREAD is not set (so that the singlethreaded library can
  392. safely be called from multithreaded programs)
  393. USE_OPENMP - Use OpenMP as multithreading backend
  394. NUM_THREADS - define this to the maximum number of parallel threads you expect to need (defaults to the number of cores in the build cpu)
  395. NUM_PARALLEL - define this to the number of OpenMP instances that your code may use for parallel calls into OpenBLAS (default 1,see below)
  396. </code></pre></div>
  397. <p>OpenBLAS uses a fixed set of memory buffers internally, used for communicating
  398. and compiling partial results from individual threads. For efficiency, the
  399. management array structure for these buffers is sized at build time - this
  400. makes it necessary to know in advance how many threads need to be supported on
  401. the target system(s).</p>
  402. <p>With OpenMP, there is an additional level of complexity as there may be calls
  403. originating from a parallel region in the calling program. If OpenBLAS gets
  404. called from a single parallel region, it runs single-threaded automatically to
  405. avoid overloading the system by fanning out its own set of threads. In the case
  406. that an OpenMP program makes multiple calls from independent regions or
  407. instances in parallel, this default serialization is not sufficient as the
  408. additional caller(s) would compete for the original set of buffers already in
  409. use by the first call. So if multiple OpenMP runtimes call into OpenBLAS at the
  410. same time, then only one of them will be able to make progress while all the
  411. rest of them spin-wait for the one available buffer. Setting <code>NUM_PARALLEL</code> to
  412. the upper bound on the number of OpenMP runtimes that you can have in a process
  413. ensures that there are a sufficient number of buffer sets available.</p>
  414. <aside class="md-source-file">
  415. <span class="md-source-file__fact">
  416. <span class="md-icon" title="Last update">
  417. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
  418. </span>
  419. <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">June 30, 2024</span>
  420. </span>
  421. <span class="md-source-file__fact">
  422. <span class="md-icon" title="Created">
  423. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg>
  424. </span>
  425. <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">August 4, 2023</span>
  426. </span>
  427. </aside>
  428. </article>
  429. </div>
  430. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  431. </div>
  432. </main>
  433. <footer class="md-footer">
  434. <div class="md-footer-meta md-typeset">
  435. <div class="md-footer-meta__inner md-grid">
  436. <div class="md-copyright">
  437. <div class="md-copyright__highlight">
  438. Copyright &copy; 2012- OpenBLAS contributors
  439. </div>
  440. Made with
  441. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  442. Material for MkDocs
  443. </a>
  444. </div>
  445. <div class="md-social">
  446. <a href="https://github.com/OpenMathLib/OpenBLAS" target="_blank" rel="noopener" title="github.com" class="md-social__link">
  447. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
  448. </a>
  449. <a href="https://github.com/OpenMathLib/OpenBLAS/LICENSE" target="_blank" rel="noopener" title="github.com" class="md-social__link">
  450. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 10a3.04 3.04 0 0 1 3-3 3.04 3.04 0 0 1 3 3 3.04 3.04 0 0 1-3 3 3.04 3.04 0 0 1-3-3m3 9 4 1v-3.08A7.54 7.54 0 0 1 12 18a7.54 7.54 0 0 1-4-1.08V20m4-16a5.78 5.78 0 0 0-4.24 1.74A5.78 5.78 0 0 0 6 10a5.78 5.78 0 0 0 1.76 4.23A5.78 5.78 0 0 0 12 16a5.78 5.78 0 0 0 4.24-1.77A5.78 5.78 0 0 0 18 10a5.78 5.78 0 0 0-1.76-4.26A5.78 5.78 0 0 0 12 4m8 6a8 8 0 0 1-.57 2.8A7.8 7.8 0 0 1 18 15.28V23l-6-2-6 2v-7.72A7.9 7.9 0 0 1 4 10a7.68 7.68 0 0 1 2.33-5.64A7.73 7.73 0 0 1 12 2a7.73 7.73 0 0 1 5.67 2.36A7.68 7.68 0 0 1 20 10"/></svg>
  451. </a>
  452. </div>
  453. </div>
  454. </div>
  455. </footer>
  456. </div>
  457. <div class="md-dialog" data-md-component="dialog">
  458. <div class="md-dialog__inner md-typeset"></div>
  459. </div>
  460. <script id="__config" type="application/json">{"base": "..", "features": ["header.autohide"], "search": "../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
  461. <script src="../assets/javascripts/bundle.525ec568.min.js"></script>
  462. </body>
  463. </html>

OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.