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

Re: RFS: rocalution/5.7.1-1 [ITP] -- ROCm library for iterative sparse solvers



Hi Kari,

Thanks for your review. I appreciate your guidance.

On 2024-02-13 03:19, Kari Pahula wrote:
A suggestion: The documentation package could include an examples
subdirectory in /usr/share/doc/librocalution-doc and it could install
the cpp files from the clients directory to it.  And the package could
provide a Makefile to compile them as well, since using cmake for that
purpose would be overkill.  /usr/share/doc/libgecode-doc/examples if
you want to check how I did it for Gecode.

I've added the stand-alone examples to the doc package. The build process for each example is just linking against rocalution. e.g. `g++ /usr/share/doc/librocalution-dev/examples/amg.cpp -lrocalution`. Would this be sufficient to proceed with the initial upload? We can further refine the provided examples in later updates.

I did not add a Makefile to the package, but I've attached one to consider. Is the expectation that users will copy the examples directory to their home folder before calling `make`?

Also, it wasn't obvious to me what an mtx file was that the samples
required, I found an example from
https://github.com/NVIDIA/AMGX/blob/main/examples/matrix.mtx.  It
wouldn't hurt to include an example of that as well.

It would be nice to have a representative example. Ideally, we would package some of the matrices from the eponymous Matrix Market [1] or the SuiteSparse Matrix Collection [2] in their own data packages. However, it's not clear to me whether Debian can redistribute any of those files.

I see that you've added the Debian revision to the shlibs file.  This
should only be used if the ABI changes between Debian revisions.

Quoting the policy:

Dependency versions in either symbols or shlibs files normally should
not contain the Debian revision of the package, since the library
behavior is normally fixed for a particular upstream version and any
Debian packaging of that upstream version will have the same
behavior. In the rare case that the library behavior was changed in a
particular Debian revision, appending ~ to the end of the version that
includes the Debian revision is recommended, since this allows
backports of the shared library package using the normal backport
versioning convention to satisfy the dependency.

Opps. I was looking for more references on how to use shlibs and I was mislead by a secondary source [3]. I've made the correction. Thanks for catching that mistake!

I've uploaded a new version to mentors / salsa incorporating your feedback. I also noticed that I'd missed adding a clean target, so it corrects that as well.

Sincerely,
Cory Bloor

[1]: https://math.nist.gov/MatrixMarket/
[2]: http://sparse.tamu.edu/
[3]: https://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html#shlibsfile

LDLIBS ?= -lrocalution

examples = amg \
           as-precond \
           async \
           benchmark \
           bicgstab \
           block-precond \
           cg-amg \
           cg-rsamg \
           cg-saamg \
           cg \
           cmk \
           complex \
           direct \
           fcg \
           fgmres \
           fixed-point \
           gmres \
           idr \
           key \
           me-preconditioner \
           mixed-precision \
           power-method \
           sa-amg \
           simple-spmv \
           sp-precond \
           stencil \
           tns \
           ua-amg \
           var-precond

.PHONY: all
all: $(examples)

.PHONY: clean
clean:
	$(RM) $(examples)

Reply to: