I've been reading about rocm for 20 minutes, and not to sound foolish, but what does it do?

Your package does support my old phenom. Love to help you out (he says cautiously). Is there a clean uninstall command?

    brent ROCm is a OpenCL implementation for newish AMD GPU. It does other things too, but I don't know much about them, since I want it in order to run OpenCL software.

    In the git repo there is package.yml files, which you can give to the Solus build system in order to build Solus packages that eopkg will install, so you can uninstall them as if they were packages from the Solus repository. You can read about these thing here:
    https://getsol.us/articles/packaging/building-a-package/en/
    https://getsol.us/articles/packaging/local-repository/en/

    However, check if your old phenom and your GPU are really supported by ROCm, since building this is fairly long, particularly llvm, which also generate close to 70GB of files during its build.

      davidjharder MMX Thank you both for the clarity. I get it now. Read a little about CL implementation too.

      I don't have anything near a spare 70GB, though. Sorry I couldn't help. Give it time.

      I can't help you because I have an Hawaii chip on PCI-e 2.0, even. But I really want to congratulate with you for building that beast. I really wish ROCm landed in Solus repo soon.

      Fantastic work and congratulations! I gave up on packaging this stuff some time ago and bought a NVIDIA card instead (Shame on me). I can test it out on a Laptop. As far as I know Ryzen APU are supported by ROCM for OpenCL but not for HIP/HCC and so I can give it a try.

      4 days later

      MMX I started building the ROCM packages. I created a minor pull request on your github repository. But when building rocm-device-libs i get an error. I created an issue for that on your github repository, too. If you have any idea how to solve this I would be happy to hear from you 😃

      • MMX replied to this.

        saitam I merged your pull request (I got a little too M-d happy when changing the package.ymls from my local files to pulling from ROCm repos), and answered to your issue.

        Thank you very much for taking some time to look at it, and from trying to package ROCm some times ago. I actually learn the way Solus packages by looking at your .yml

        If anyone is passing by this thread this week, and have a recent AMD GPU, don't be shy! saitam and I both have APU, whose support in ROCm seems to change with every release, so someone with a proper discrete GPU testing it would be great (when we hopefully fix the build process).

          2 years later

          I had tried build ROCm but the llvm failed in the end (in 2 different pc's that i was testing it) , i also ln the solbuild cache folder to another drive cause it only has 60GB space free but that didn't help ... too bad and the only reason i keep my second os Garuda Linux is cause of the OpenCL support for mining vertcoin with my r9 380 ... I hope some day that will be fixed and i wan't need another os , other than Solus.

          As I've posted on their GitHub issues. Still stuck and unable building it. Personally, needed for my sadly proprietary DaVinci Resolve Studio editor, GPU usage.

          3 months later

          MMX I seem to be a bit late to the party, but here I am with my relatively recent discrete AMD GPU! Trying to build to use Tensorflow with my 5700 XT.

          This is my first time building a .eopkg, but it seems like things are going pretty smoothly so far. It took me a while to figure out that your build script expected solbuild-config-local-unstable. Currently building LLVM, which I understand will take a while.

          I'll keep you posted on my progress. I'm very grateful for the work you've put into this!

          Unfortunately I'm having a bit of trouble with llvm-roc. I'm a bit out of my depth here. Any experts able to help me out?

          Here's the error text I'm getting:

          [3169/3186] Building CXX object utils/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o
          FAILED: utils/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o
          /usr/lib64/ccache/bin/x86_64-solus-linux-g++ -DHAVE_POSIX_REGEX -DHAVE_STD_REGEX -DHAVE_STEADY_CLOCK -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/solusBuildDir/utils/benchmark/src -I/home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src -I/usr/include/libxml2 -I/home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/solusBuildDir/include -I/home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/include -I/home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/include -I/home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/../include -mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT -fPIC -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++11 -Wall -Wextra -Wshadow -pedantic -pedantic-errors -Wfloat-equal -fstrict-aliasing -fno-exceptions -Wstrict-aliasing -O2 -g -DNDEBUG -std=c++14 -MD -MT utils/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o -MF utils/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o.d -o utils/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o -c /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/benchmark_register.cc
          In file included from /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/benchmark_register.cc:15:
          /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/benchmark_register.h: In function ‘void AddRange(std::vector<T>*, T, T, int)’:
          /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/benchmark_register.h:17:30: error: ‘numeric_limits’ is not a member of ‘std’
          17 | static const T kmax = std::numeric_limits<T>::max();
          | ^~~~~~~~~~~~~~
          /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/benchmark_register.h:17:46: error: expected primary-expression before ‘>’ token
          17 | static const T kmax = std::numeric_limits<T>::max();
          | ^
          /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/benchmark_register.h:17:49: error: ‘::max’ has not been declared; did you mean ‘std::max’?
          17 | static const T kmax = std::numeric_limits<T>::max();
          | ^~~
          | std::max
          In file included from /usr/include/c++/11/algorithm:62,
          from /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/include/benchmark/benchmark.h:175,
          from /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/internal_macros.h:4,
          from /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/check.h:8,
          from /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/benchmark_register.h:6,
          from /home/build/YPKG/root/llvm-roc/build/llvm-project-roc-ocl-3.1.0/llvm/utils/benchmark/src/benchmark_register.cc:15:
          /usr/include/c++/11/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
          3467 | max(initializer_list<_Tp> __l, _Compare __comp)
          | ^~~
          ninja: build stopped: subcommand failed.
          [Info] Building llvm-roc-3.1.0
          [Build] Building native package
          [Source] Extracting source
          [Build] Running step: setup
          [Build] Enabling ccache
          [Build] setup successful
          [Build] Running step: build
          [Build] Enabling ccache
          Command '['/bin/bash', '--norc', '--noprofile', '/tmp/ypkg-buildVTErfX']' returned non-zero exit status 1
          [Build] build failed

          If more context is required I can run the build again and save the full output to a file. I think I've captured the relevant information above, but I'm not quite sure.

          I'm not sure if this is a configuration issue on my part. Or perhaps I'm taking some wrong steps during the build process; this is my first time working with solbuild after all. Feel free to quiz me on configuration, process, etc.. I'm not really very confident I'm doing any of this correctly, so request whatever level of verbosity you need.

          Looks like llvm-roc is quite out of date. I'm not sure if a specific version is needed. You can try updating it to the latest version or cherry-picking the build fixes from their git. As for the specific errors themselves it is just due to missing includes due to building with gcc11. You'll need to include <algorithm> for std::max and <limits> for std::numeric_limits.

            joebonrichie Thanks for your suggestion! I was able to build llvm-roc by swapping to the current .tar.gz (rocm-4.5.2), but ran into some issues with rocm-device-libs.

            I think I may just be able to update all of the rocm packages to the 4.5.2 release versions to complete the build. Trying that with rocm-device-libs now. If I can get this to work I'll do some testing with Tensorflow-rocm and make a pull request to @MMX 's repository.

            7 days later

            I seem to keep running into issues that I don't yet have the knowledge to solve. For now I'm going to step away from ROC to better learn how to use Solus's packaging tools, and once I have a better understanding of those I'll return to this project.