diff options
author | Sylvain Jeaugey <sjeaugey@nvidia.com> | 2016-06-16 02:54:57 +0300 |
---|---|---|
committer | Sylvain Jeaugey <sjeaugey@nvidia.com> | 2016-06-16 04:18:44 +0300 |
commit | 08ddfe03d21198d8040e1a6dab7d3b1cff48cd67 (patch) | |
tree | 38fa6fc99843370b313e39ec9d1798f539a78b8b | |
parent | 620491a64915354a827839dd8a2b86651cb0c187 (diff) |
Rework debian packaging
-rw-r--r-- | Makefile | 30 | ||||
-rw-r--r-- | debian/changelog | 43 | ||||
-rw-r--r-- | debian/changelog.in | 5 | ||||
-rw-r--r-- | debian/control | 30 | ||||
-rw-r--r-- | debian/control.in | 28 | ||||
-rw-r--r-- | debian/libnccl1.install | 2 | ||||
-rw-r--r-- | debian/libnccl1.install.in | 2 | ||||
-rw-r--r-- | debian/nccl.7 | 11 | ||||
-rwxr-xr-x | debian/rules | 6 |
9 files changed, 75 insertions, 82 deletions
@@ -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" \ + $< > $@ diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 0d193ea..0000000 --- a/debian/changelog +++ /dev/null @@ -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 diff --git a/debian/changelog.in b/debian/changelog.in new file mode 100644 index 0000000..a86dd8d --- /dev/null +++ b/debian/changelog.in @@ -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} diff --git a/debian/control b/debian/control deleted file mode 100644 index 1581ec1..0000000 --- a/debian/control +++ /dev/null @@ -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. diff --git a/debian/control.in b/debian/control.in new file mode 100644 index 0000000..edfc0ff --- /dev/null +++ b/debian/control.in @@ -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. diff --git a/debian/libnccl1.install b/debian/libnccl1.install deleted file mode 100644 index 0e2d651..0000000 --- a/debian/libnccl1.install +++ /dev/null @@ -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 diff --git a/debian/libnccl1.install.in b/debian/libnccl1.install.in new file mode 100644 index 0000000..73b4c0a --- /dev/null +++ b/debian/libnccl1.install.in @@ -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 diff --git a/debian/nccl.7 b/debian/nccl.7 index da4d4a4..0cb5601 100644 --- a/debian/nccl.7 +++ b/debian/nccl.7 @@ -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. diff --git a/debian/rules b/debian/rules index cd40502..23b90a9 100755 --- a/debian/rules +++ b/debian/rules @@ -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 |