From 08ddfe03d21198d8040e1a6dab7d3b1cff48cd67 Mon Sep 17 00:00:00 2001 From: Sylvain Jeaugey Date: Wed, 15 Jun 2016 16:54:57 -0700 Subject: Rework debian packaging --- Makefile | 30 +++++++++++++++++++++++++++++- debian/changelog | 43 ------------------------------------------- debian/changelog.in | 5 +++++ debian/control | 30 ------------------------------ debian/control.in | 28 ++++++++++++++++++++++++++++ debian/libnccl1.install | 2 -- debian/libnccl1.install.in | 2 ++ debian/nccl.7 | 11 +++++------ debian/rules | 6 ++++++ 9 files changed, 75 insertions(+), 82 deletions(-) delete mode 100644 debian/changelog create mode 100644 debian/changelog.in delete mode 100644 debian/control create mode 100644 debian/control.in delete mode 100644 debian/libnccl1.install create mode 100644 debian/libnccl1.install.in diff --git a/Makefile b/Makefile index 90bb40f..70c4c27 100644 --- a/Makefile +++ b/Makefile @@ -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 Mon, 06 Jun 2016 1:07:01 -0800 - -nccl (1.2.1-1+cuda7.5) trusty; urgency=medium - - * Merged public bugfixes - - -- Boris Fomitchev Thu, 21 Apr 2016 10:07:01 -0800 - -nccl (1.1.1-1+cuda7.5) trusty; urgency=medium - - * Rebuilding with 7.5 - - -- Boris Fomitchev 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 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 Fri, 18 Dec 2015 13:45:16 -0800 - -nccl (1.0.2) trusty; urgency=medium - - * Merged latest upstream changes. - - -- Boris Fomitchev Tue, 15 Dec 2015 14:52:01 -0800 - -nccl (1.0.1) trusty; urgency=medium - - * Initial release. - - -- Boris Fomitchev 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 ${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 -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 +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 -- cgit v1.2.3