Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/marian-nmt/nccl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Jeaugey <sjeaugey@nvidia.com>2016-06-16 02:54:57 +0300
committerSylvain Jeaugey <sjeaugey@nvidia.com>2016-06-16 04:18:44 +0300
commit08ddfe03d21198d8040e1a6dab7d3b1cff48cd67 (patch)
tree38fa6fc99843370b313e39ec9d1798f539a78b8b
parent620491a64915354a827839dd8a2b86651cb0c187 (diff)
Rework debian packaging
-rw-r--r--Makefile30
-rw-r--r--debian/changelog43
-rw-r--r--debian/changelog.in5
-rw-r--r--debian/control30
-rw-r--r--debian/control.in28
-rw-r--r--debian/libnccl1.install2
-rw-r--r--debian/libnccl1.install.in2
-rw-r--r--debian/nccl.711
-rwxr-xr-xdebian/rules6
9 files changed, 75 insertions, 82 deletions
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 <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