Rework debian packaging

This commit is contained in:
Sylvain Jeaugey 2016-06-15 16:54:57 -07:00
parent 620491a649
commit 08ddfe03d2
9 changed files with 75 additions and 82 deletions

View File

@ -62,7 +62,7 @@ else
endif
.PHONY : lib clean test mpitest install
.PHONY : lib clean debclean test mpitest install
.DEFAULT : lib
INCEXPORTS := nccl.h
@ -168,3 +168,31 @@ $(MPITSTDIR)/% : test/mpi/%.cu $(TSTDEP)
@sed -e 's/.*://' -e 's/\\$$//' < $(@:%=%.d.tmp) | fmt -1 | \
sed -e 's/^ *//' -e 's/$$/:/' >> $(@:%=%.d)
@rm -f $(@:%=%.d.tmp)
#### PACKAGING ####
CUDA_VERSION ?= $(shell ls $(CUDA_LIB)/libcudart.so.* | head -1 | rev | cut -d "." -f -2 | rev)
DEB_GEN_IN := $(shell ls debian/*.in)
DEB_GEN := $(DEB_GEN_IN:.in=)
DEB_REVISION ?= 1
DEB_TIMESTAMP := $(shell date -R)
deb : lib $(DEB_GEN)
@printf "Building Debian package"
debuild -eLD_LIBRARY_PATH -uc -us -d -b
debclean :
rm -f $(DEB_GEN)
debian/% : debian/%.in
@printf "Generating %-25s > %-24s\n" $< $@
sed -e "s/\$${nccl:Major}/$(VER_MAJOR)/g" \
-e "s/\$${nccl:Minor}/$(VER_MINOR)/g" \
-e "s/\$${nccl:Patch}/$(VER_PATCH)/g" \
-e "s/\$${nccl:Cuda}/$(CUDA_VERSION)/g" \
-e "s/\$${nccl:Debian}/$(DEB_REVISION)/g" \
-e "s/\$${nccl:Timestamp}/$(DEB_TIMESTAMP)/g" \
$< > $@

43
debian/changelog vendored
View File

@ -1,43 +0,0 @@
nccl (1.2.2-1+cuda7.5) trusty; urgency=medium
* Gencodes changed to NV recommended
* Minor Makefile changes
-- Boris Fomitchev <bfomitchev@nvidia.com> Mon, 06 Jun 2016 1:07:01 -0800
nccl (1.2.1-1+cuda7.5) trusty; urgency=medium
* Merged public bugfixes
-- Boris Fomitchev <bfomitchev@nvidia.com> Thu, 21 Apr 2016 10:07:01 -0800
nccl (1.1.1-1+cuda7.5) trusty; urgency=medium
* Rebuilding with 7.5
-- Boris Fomitchev <bfomitchev@nvidia.com> Wed, 16 Mar 2016 18:07:01 -0800
nccl (1.1.0) trusty; urgency=medium
* Picking up the latest
* Added rule for manpage creation.
-- Boris Fomitchev <bfomitchev@nvidia.com> Tue, 16 Feb 2016 18:07:01 -0800
nccl (1.0.2-2) trusty; urgency=medium
* Packages are now libnccl1 and libnccl-dev
-- Luke Yeager <lyeager@nvidia.com> Fri, 18 Dec 2015 13:45:16 -0800
nccl (1.0.2) trusty; urgency=medium
* Merged latest upstream changes.
-- Boris Fomitchev <bfomitchev@nvidia.com> Tue, 15 Dec 2015 14:52:01 -0800
nccl (1.0.1) trusty; urgency=medium
* Initial release.
-- Boris Fomitchev <bfomitchev@nvidia.com> Mon, 14 Dec 2015 09:52:01 -0800

5
debian/changelog.in vendored Normal file
View File

@ -0,0 +1,5 @@
nccl (${nccl:Major}.${nccl:Minor}.${nccl:Patch}-${nccl:Debian}+cuda${nccl:Cuda}) trusty; urgency=medium
* Automatic Debian package from build
-- cudatools <cudatools@nvidia.com> ${nccl:Timestamp}

30
debian/control vendored
View File

@ -1,30 +0,0 @@
Source: nccl
Section: universe/libs
Maintainer: Boris Fomitchev <bfomitchev@nvidia.com>
Priority: optional
Build-depends: debhelper(>=9), cuda-core-7-5, cuda-toolkit-7-5,
cuda-curand-dev-7-5, cuda-cublas-dev-7-5, cuda-cudart-dev-7-5, cuda-ld-conf-7-5
Standards-Version: 3.9.5
Package: libnccl1
Section: universe/libs
Architecture: amd64
Depends: ${misc:Depends}, ${shlibs:Depends},
cuda-curand-7-5, cuda-cublas-7-5, cuda-cudart-7-5, cuda-ld-conf-7-5
Description: NVIDIA Communication Collectives Library (NCCL) Runtime
NCCL (pronounced "Nickel") is a stand-alone library of standard collective
communication routines,such as all-gather, reduce, broadcast, etc., that have
been optimized to achieve high bandwidth over PCIe. NCCL supports up to eight
GPUs and can be used in either single- or multi-process (e.g., MPI)
applications.
Package: libnccl-dev
Section: universe/libdevel
Architecture: amd64
Depends: ${misc:Depends}, ${shlibs:Depends}, libnccl1 (= ${binary:Version})
Description: NVIDIA Communication Collectives Library (NCCL) Development Files
NCCL (pronounced "Nickel") is a stand-alone library of standard collective
communication routines,such as all-gather, reduce, broadcast, etc., that have
been optimized to achieve high bandwidth over PCIe. NCCL supports up to eight
GPUs and can be used in either single- or multi-process (e.g., MPI)
applications.

28
debian/control.in vendored Normal file
View File

@ -0,0 +1,28 @@
Source: nccl
Section: libs
Maintainer: cudatools <cudatools@nvidia.com>
Priority: optional
Build-depends: debhelper(>=9)
Standards-Version: 3.9.5
Package: libnccl${nccl:Major}
Section: libs
Architecture: amd64
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: NVIDIA Collectives Communication Library (NCCL) Runtime
NCCL (pronounced "Nickel") is a stand-alone library of standard collective
communication routines for GPUs, such as all-gather, reduce, broadcast, etc.,
that have been optimized to achieve high bandwidth over PCIe. NCCL supports up
to eight GPUs and can be used in either single- or multi-process (e.g., MPI)
applications.
Package: libnccl-dev
Section: libdevel
Architecture: amd64
Depends: ${misc:Depends}, ${shlibs:Depends}, libnccl${nccl:Major} (= ${binary:Version})
Description: NVIDIA Collectives Communication Library (NCCL) Development Files
NCCL (pronounced "Nickel") is a stand-alone library of standard collective
communication routines for GPUs, such as all-gather, reduce, broadcast, etc.,
that have been optimized to achieve high bandwidth over PCIe. NCCL supports up
to eight GPUs and can be used in either single- or multi-process (e.g., MPI)
applications.

View File

@ -1,2 +0,0 @@
lib/libnccl.so.1 /usr/lib/x86_64-linux-gnu
lib/libnccl.so.1.2.2 /usr/lib/x86_64-linux-gnu

2
debian/libnccl1.install.in vendored Normal file
View File

@ -0,0 +1,2 @@
lib/libnccl.so.${nccl:Major} /usr/lib/x86_64-linux-gnu
lib/libnccl.so.${nccl:Major}.${nccl:Minor}.${nccl:Patch} /usr/lib/x86_64-linux-gnu

11
debian/nccl.7 vendored
View File

@ -1,6 +1,7 @@
.TH NCCL
.SH NAME
.PP
Optimized primitives for collective multi\-GPU communication.
nccl \- Optimized primitives for collective multi\-GPU communication.
.SH Introduction
.PP
@ -25,7 +26,7 @@ NCCL requires at least CUDA 7.0 and Kepler or newer GPUs. Best performance is ac
.PP
Note: NCCL may also work with CUDA 6.5, but this is an untested configuration.
.SH Build \& run
.SH Build & run
.PP
To build the library and tests.
@ -132,9 +133,7 @@ int main(int argc, char* argv[])
.fi
.RE
.SH Copyright and License
.SH Copyright
.PP
NCCL is provided under the
\[la]LICENSE.txt\[ra]. All source code and
accompanying documentation is copyright (c) 2015\-2016, NVIDIA CORPORATION. All
All source code and accompanying documentation is copyright (c) 2015\-2016, NVIDIA CORPORATION. All
rights reserved.

6
debian/rules vendored
View File

@ -5,3 +5,9 @@
override_dh_auto_install:
PREFIX=debian/tmp dh_auto_install
override_dh_auto_test:
# Do not make test
override_dh_auto_clean:
# Do not make clean