Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 0 additions & 97 deletions C/CUDA/CUDNN/build_tarballs.jl

This file was deleted.

55 changes: 0 additions & 55 deletions C/CUDA/CUDNN/redistrib.json

This file was deleted.

12 changes: 12 additions & 0 deletions C/CUDNN/build_10.2.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
platforms_and_sources = Dict(
Platform("x86_64", "linux") => [
ArchiveSource("https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.2.1.32/10.2_06072021/cudnn-10.2-linux-x64-v8.2.1.32.tgz",
"fd6321ff3bce4ce0cb3342e5bd38c96dcf3b073d44d0808962711c518b6d61e2")],
Platform("x86_64", "windows") => [
ArchiveSource("https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.2.1.32/10.2_06072021/cudnn-10.2-windows10-x64-v8.2.1.32.zip",
"3e70876bdcf44f856d9c9dbdbde07ceec43005e97d5ffe83338b255c8466151f")],
Platform("aarch64", "linux") => [
FileSource("https://repo.download.nvidia.com/jetson/common/pool/main/c/cudnn/libcudnn8_8.2.1.32-1+cuda10.2_arm64.deb", "4c1619640e5411fb53e87828c62ff429daa608c8f02efb96460b43f743d64bb8"),
FileSource("https://repo.download.nvidia.com/jetson/common/pool/main/c/cudnn/libcudnn8-dev_8.2.1.32-1+cuda10.2_arm64.deb", "adf7873edbde7fe293f672ebc65fcec299642950797d18b1c3a89855bb23904e")
]
)
14 changes: 14 additions & 0 deletions C/CUDNN/build_11.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
platforms_and_sources = Dict(
Platform("x86_64", "linux") => [
ArchiveSource("https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.2.1.32/11.3_06072021/cudnn-11.3-linux-x64-v8.2.1.32.tgz",
"39412acd9ef5dd27954b6b9f5df75bd381c5d7ceb7979af6c743a7f4521f9c77")],
Platform("powerpc64le", "linux") => [
ArchiveSource("https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.2.1.32/11.3_06072021/cudnn-11.3-linux-ppc64le-v8.2.1.32.tgz",
"4ee4f2afeaae34fdb06da8d4942a6802aae94ecc51f307292c45966eecbe5fb9")],
Platform("aarch64", "linux") => [
ArchiveSource("https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.2.1.32/11.3_06072021/cudnn-11.3-linux-aarch64sbsa-v8.2.1.32.tgz",
"e3a0e570cb8ba01d5d45e6eb1ebe29ff22fd5fb8ad45bfe7a448f4f95065ec1e")],
Platform("x86_64", "windows") => [
ArchiveSource("https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.2.1.32/11.3_06072021/cudnn-11.3-windows-x64-v8.2.1.32.zip",
"5b9bf2dc4670fb1519ef55e13da5123f0b6b39fac5e6138e31388b269808d5f2")],
)
89 changes: 89 additions & 0 deletions C/CUDNN/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
using BinaryBuilder, Pkg
using Base.BinaryPlatforms: arch, os

const YGGDRASIL_DIR = "../.."
include(joinpath(YGGDRASIL_DIR, "fancy_toys.jl"))
include(joinpath(YGGDRASIL_DIR, "platforms", "cuda.jl"))

name = "CUDNN"
version = v"8.2.1"

script = raw"""
mkdir -p ${libdir} ${prefix}/include

cd ${WORKSPACE}/srcdir
if [[ ${target} == powerpc64le-linux-gnu ]]; then
cd cuda/targets/ppc64le-linux
find .

install_license NVIDIA_SLA_cuDNN_Support.txt

mv lib/libcudnn*.so* ${libdir}
mv include/* ${prefix}/include
elif [[ ${target} == aarch64-linux-gnu && ${bb_full_target} == aarch64-linux-gnu-*-cuda+10.2 ]]; then
apk add dpkg
dpkg-deb -x libcudnn8_*.deb .
dpkg-deb -x libcudnn8-dev_*.deb .
mv -nv ./usr/include/aarch64-linux-gnu/* ${includedir}
mv -nv ./usr/lib/aarch64-linux-gnu/libcudnn*.so* ${libdir}
install_license ./usr/share/doc/libcudnn8/copyright
elif [[ ${target} == *-linux-gnu ]]; then
cd cuda
find .

install_license NVIDIA_SLA_cuDNN_Support.txt

mv lib64/libcudnn*.so* ${libdir}
mv include/* ${prefix}/include
elif [[ ${target} == x86_64-w64-mingw32 ]]; then
cd cuda
find .

install_license NVIDIA_SLA_cuDNN_Support.txt

mv bin/cudnn*64_*.dll ${libdir}
mv include/* ${prefix}/include

mv ../dll_x64/zlibwapi.dll ${libdir}

# fixup
chmod +x ${libdir}/*.dll
fi
"""

augment_platform_block = CUDA.augment

products = [
LibraryProduct(["libcudnn_ops_infer", "cudnn_ops_infer64_$(version.major)"], :libcudnn_ops_infer64),
LibraryProduct(["libcudnn_ops_train", "cudnn_ops_train64_$(version.major)"], :libcudnn_ops_train64),
LibraryProduct(["libcudnn_cnn_infer", "cudnn_cnn_infer64_$(version.major)"], :libcudnn_cnn_infer64),
LibraryProduct(["libcudnn_cnn_train", "cudnn_cnn_train64_$(version.major)"], :libcudnn_cnn_train64),
LibraryProduct(["libcudnn_adv_infer", "cudnn_adv_infer64_$(version.major)"], :libcudnn_adv_infer64),
LibraryProduct(["libcudnn_adv_train", "cudnn_adv_train64_$(version.major)"], :libcudnn_adv_train64),

# shim layer
LibraryProduct(["libcudnn", "cudnn64_$(version.major)"], :libcudnn),
]

dependencies = [RuntimeDependency(PackageSpec(name="CUDA_Runtime_jll"))]

builds = ["10.2", "11"]
for build in builds
include("build_$(build).jl")
cuda_version = VersionNumber(build)

for (platform, sources) in platforms_and_sources
augmented_platform = Platform(arch(platform), os(platform);
cuda=CUDA.platform(cuda_version))
should_build_platform(triplet(augmented_platform)) || continue
if platform == Platform("x86_64", "windows")
push!(sources,
ArchiveSource("http://www.winimage.com/zLibDll/zlib123dllx64.zip",
"fd324c6923aa4f45a60413665e0b68bb34a7779d0861849e02d2711ff8efb9a4"))
end
build_tarballs(ARGS, name, version, sources, script, [augmented_platform],
products, dependencies; lazy_artifacts=true,
julia_compat="1.6", augment_platform_block,
dont_dlopen=true)
end
end