{"id":66,"date":"2023-12-15T21:47:31","date_gmt":"2023-12-15T21:47:31","guid":{"rendered":"https:\/\/mvermeulen.org\/perf\/?page_id=66"},"modified":"2023-12-16T22:32:02","modified_gmt":"2023-12-16T22:32:02","slug":"aocc","status":"publish","type":"page","link":"https:\/\/mvermeulen.org\/perf\/tools\/aocc\/","title":{"rendered":"Compilers"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">AOCC &#8211; AMD Optimizing C\/C++ and Fortran Compiler<\/h2>\n\n\n\n<p>AOCC is the AMD Optimizing C\/C++ and Fortran Compiler and is available at <a href=\"https:\/\/amd.com\/en\/developer\/aocc.html\">https:\/\/amd.com\/en\/developer\/aocc.html<\/a>.  Based on LLVM with specialized support for Zen cores and particularly focused on the AMD EPYC server processors.  Some of this is upstream but also some optimizations only in the AOCC.  It has a click-through EULA before installing.<\/p>\n\n\n\n<p>By default it installs in \/opt\/AMD\/aocc-compiler-4.1.0 and \/opt\/AMD\/aocc-compiler-4.1.0\/bin should be added to PATH and perhaps \/opt\/AMD\/aocc-compiler-4.1.0\/lib to LD_LIBRARY_PATH.  This enables versions of LLVM-based tools including clang, flang, lld.<\/p>\n\n\n\n<p>Also includes amdgpu-arch which tells me my AMD GPU version (also nvptx-arch which presumably does the same for NVidia GPUs<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>prompt% amdgpu-arch\ngfx1100<\/code><\/pre>\n\n\n\n<p>There is also a Quick Reference Guide of compiler options at: <a href=\"https:\/\/www.amd.com\/content\/dam\/amd\/en\/documents\/developer\/version-4-1-documents\/aocc\/aocc-4.1-quick-reference-guide.pdf\">https:\/\/www.amd.com\/content\/dam\/amd\/en\/documents\/developer\/version-4-1-documents\/aocc\/aocc-4.1-quick-reference-guide.pdf<\/a> and a User Guide with more complete descriptions and prerequisites, etc.<\/p>\n\n\n\n<p>There is a set of related libraries at: <a href=\"https:\/\/www.amd.com\/en\/developer\/aocl.html\">https:\/\/www.amd.com\/en\/developer\/aocl.html<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">gcc\/g++<\/h2>\n\n\n\n<p>The default system version of gcc with Ubuntu 22.04 is 11.4<\/p>\n\n\n\n<p>The latest version of gcc I have built is 13.2<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Intel(C) oneAPI DPC++\/C++ Compiler<\/h2>\n\n\n\n<p>The Intel OneAPI DPC++\/C++ Compiler is available at <a href=\"http:\/\/software.intel.com\/\">http:\/\/software.intel.com\/<\/a> and more specifically <a href=\"https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/tools\/oneapi\/toolkits.html\">https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/tools\/oneapi\/toolkits.html<\/a><\/p>\n\n\n\n<p>The &#8220;intel-basekit&#8221; package pulls in many other Intel compiler packages.  These get installed into \/opt\/intel.  For example the C++ compiler driver is \/opt\/intel\/oneapi\/compiler\/2024.0\/bin\/icpx and the C compiler is &#8220;icx&#8221; in the same directory.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>AOCC &#8211; AMD Optimizing C\/C++ and Fortran Compiler AOCC is the AMD Optimizing C\/C++ and Fortran Compiler and is available at https:\/\/amd.com\/en\/developer\/aocc.html. Based on LLVM with specialized support for Zen cores and particularly focused on the AMD EPYC server processors. <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/mvermeulen.org\/perf\/tools\/aocc\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":50,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-66","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/comments?post=66"}],"version-history":[{"count":5,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/66\/revisions"}],"predecessor-version":[{"id":91,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/66\/revisions\/91"}],"up":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/50"}],"wp:attachment":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/media?parent=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}