[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ROCm progress



Dear all,

today I have worked on ROCm 3.9 and succeeded with building the
following packages:
	rocm-llvm
	rocm-cmake
	roct-thunk-interface
	rocm-device-libs
	rocr-runtime
	rocm-compilersupport
	rocminfo
	rocclr
some of them aren't in any git by now (rocclr).

There are generally two problems:
* ROCM directory
  by default these packages want to be installed into some place like
  /opt/rocm or /usr/lib/rocm
  I contemplated to put all files into /usr/lib/rocm (similar to the
  packages provided by AMD in /opt/rocm-NNN), but that gives lots
  of warning/errors from lintian due to libraries being in strange
  places.

  Thus, I have tried now with "ROCM DIR = /usr", so that everything is
  installed directly into /usr. That fixes many problems.

* AMDGPU LLVM
  This has to go somewhere else, so I put it into /usr/lib/rocm/llvm

With the above two changes, the above packages do compile more or less.
There is one pecularity that the bitcode files from rocm-device-libs
would be installed into
	/usr/amdgcn/bitcode
which isn't a good place, and complained by lintian. So I moved them
into /usr/lib/amdgcn/bitcode. That triggered a few changes when
compiling other packages (1 or 2) so that the bitcodes are found.

Other then this, the above packages now look reasonably clean when it
comes to where/what they install.

Concerning rocm-comgr: that should probably be renamed to some lib*
package.

Concerning rocclr: here I have just started, it needs two orig.tarballs,
and when I do the above, it installs a lot of headers with very
generic names, that might be problematic:
	/usr/include/compiler/lib/*
	/usr/include/device/*
	/usr/include/elf/elfio/*
	/usr/include/os/*
	/usr/include/platform/*
	/usr/include/top.hpp
	..
This is most definitely not the right place.

THe default installation would go to /opt/rocm/rocclr, so we might want
to change the install prefix to /usr/rocclr ? Not sure though.

I will slowly work on the remaining packages, blas/hip/..., time
permitting.

Of course, this is all very very rough. Most copyright files are not
existing or plain copies, not to speak of lintian errors. But at least I
got that far that I could compile most of the stuff.

I did **NOT** push by now, because the ROCMDIR=/usr is a considerable
change I would like to discuss here before we continue.

The other options are to manually move libraries and headers and cmake
files after the install to /usr/* from /usr/lib/rocm - tried that for
some, but it also needs updates to the actual content of the cmake files
because they search for the libraries. So that might work but is
probably quite a lot of fiddling.

Anyway, let me know what you think!

Best regards

Norbert

--
PREINING Norbert                              https://www.preining.info
Accelia Inc. + IFMGA ProGuide + TU Wien + JAIST + TeX Live + Debian Dev
GPG: 0x860CDC13   fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13


Reply to: