Skip to content
Snippets Groups Projects
Commit a54073d8 authored by Jens Henrik Goebbert's avatar Jens Henrik Goebbert
Browse files

add PyDeepLearning

parent e60f5323
No related branches found
No related tags found
No related merge requests found
easyblock = 'PythonBundle'
name = 'JupyterKernel-PyDeepLearning'
version = '2023.5'
local_jupyterver = '2023.3.6'
versionsuffix = '-' + local_jupyterver
homepage = 'https://www.fz-juelich.de'
description = """
Special DeepLearning kernel for Jupyter.
Project Jupyter exists to develop open-source software, open-standards, and services
for interactive computing across dozens of programming languages.
"""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}
builddependencies = [
('binutils', '2.38'),
# just ensure they exist
('CUDA', '11.7', '', SYSTEM),
('OpenCV', '4.7.0', '-CUDA-%(cudaver)s-contrib', ('gcccoremkl', '11.3.0-2022.1.0')),
('TensorFlow', '2.11.0', '-CUDA-%(cudaver)s', ('gcccoremkl', '11.3.0-2022.1.0')),
('protobuf-python', '3.19.4'),
# ('PyTorch', '1.12', '-CUDA-%(cudaver)s', ''),
# ('PyTorch-Geometric', '2.1.0', ''),
# ('torchvision', '0.13.1', '-CUDA-11.7'),
# ('torchaudio', '0.12.1'),
]
dependencies = [
('Python', '3.10.4'),
('JupyterLab', local_jupyterver),
]
components = [
('logos', '1.0', {
'easyblock': 'Binary',
'sources': [
{'filename': 'logo-32x32.png.base64', 'extract_cmd': "base64 -d %s > %%(builddir)s/logo-32x32.png"},
{'filename': 'logo-64x64.png.base64', 'extract_cmd': "base64 -d %s > %%(builddir)s/logo-64x64.png"},
{'filename': 'logo-128x128.png.base64', 'extract_cmd': "base64 -d %s > %%(builddir)s/logo-128x128.png"},
],
'checksums': [
'08651dd90fd0ce20a8f3d62bdbeacf34dfae7a73e61fde912d080222aa00e6b7',
'c3230068b407ff172b369208c20a24ed04971ce38e2fdf9116100102e14221a8',
'baa78f71dd2bb4e51eab0c653535365e54a717506622bcff4f834d653a17a2bf',
],
}),
]
exts_default_options = {
'source_urls': [PYPI_SOURCE],
'use_pip': True,
'sanity_pip_check': False, # skip as it requires protobuf, TensorFlow
'download_dep_fail': True,
'use_pip_for_deps': False,
}
exts_list = [
('lmdb', '1.1.1', {
'checksums': ['165cd1669b29b16c2d5cc8902b90fede15a7ee475c54d466f1444877a3f511ac'],
}),
('gviz_api', '1.9.0', {
'checksums': ['43d13ccc21834d0501b33a291ef3265e933dbb4bbdca3d34b1ed0a048c0ef640'],
}),
('tensorboard_plugin_profile', '2.5.0', {
'checksums': ['f832698d87a773b9a017fc4dd5cf598a1ff942ccfbf3392c83fe12c949ab9f52'],
}),
('tensorflow_hub', '0.12.0', {
'source_tmpl': 'tensorflow_hub-0.12.0-py2.py3-none-any.whl',
'checksums': ['822fe5f7338c95efcc3a534011c6689e4309ba2459def87194179c4de8a6e1fc'],
'unpack_sources': False,
'modulename': False, # skip sanity check as 'import' will fail without TensorFlow
}),
]
local_kernel_dir = 'pydeeplearning'
local_kernel_name = 'PyDeepLearning-%s' % version
modextrapaths = {
'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs
'HOROVOD_MPI_THREADS_DISABLE': ['1'], # no mpi by default
}
# Ensure that the user-specific $HOME/.local/share/jupyter is first entry in JUPYTHER_PATH
modluafooter = """
prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter"))
"""
postinstallcmds = [
# create kernel skeleton
(
'python -m ipykernel install --name=%s --prefix=%%(installdir)s && '
'mv %%(installdir)s/logo-32x32.png %%(installdir)s/share/jupyter/kernels/%s/logo-32x32.png && '
'mv %%(installdir)s/logo-64x64.png %%(installdir)s/share/jupyter/kernels/%s/logo-64x64.png && '
'mv %%(installdir)s/logo-128x128.png %%(installdir)s/share/jupyter/kernels/%s/logo-128x128.png'
) % (local_kernel_dir, local_kernel_dir, local_kernel_dir, local_kernel_dir),
# write kernel.sh
(
'{ cat > %%(installdir)s/share/jupyter/kernels/%s/kernel.sh; } << EOF\n'
'#!/bin/bash \n'
'\n'
'# Load required modules \n'
'module purge \n'
'module load Stages/${STAGE} \n'
'module load GCC \n'
'module load OpenMPI \n'
'module load %s/.%s%s \n'
'\n'
'module load OpenCV/4.7.0-CUDA-11.7-contrib \n'
'module load TensorFlow/2.11.0-CUDA-11.7 \n'
'module load protobuf-python/.3.19.4 \n'
'module load PyTorch/1.12.0-CUDA-11.7 \n'
'module load PyTorch-Geometric/2.1.0-PyTorch-1.12.0-CUDA-11.7 \n'
'module load torchvision/0.13.1-CUDA-11.7 \n'
'module load torchaudio/0.12.1 \n'
'\n'
'export PYTHONPATH=%%(installdir)s/lib/python%%(pyshortver)s/site-packages:\$PYTHONPATH \n'
'exec python -m ipykernel \$@\n'
'\n'
'EOF'
) % (local_kernel_dir, name, version, versionsuffix),
'chmod +x %%(installdir)s/share/jupyter/kernels/%s/kernel.sh' % local_kernel_dir,
# write kernel.json
(
'{ cat > %%(installdir)s/share/jupyter/kernels/%s/kernel.json; } << \'EOF\'\n'
'{ \n'
' "argv": [ \n'
' "%%(installdir)s/share/jupyter/kernels/%s/kernel.sh", \n'
' "-m", \n'
' "ipykernel_launcher", \n'
' "-f", \n'
' "{connection_file}" \n'
' ], \n'
' "display_name": "%s", \n'
' "language": "python", \n'
' "name": "%s", \n'
' "metadata": { \n'
' "debugger": true \n'
' } \n'
'}\n'
'EOF'
) % (local_kernel_dir, local_kernel_dir, local_kernel_name, local_kernel_name),
]
sanity_check_paths = {
'files': [
'share/jupyter/kernels/%s/kernel.sh' % local_kernel_dir,
'share/jupyter/kernels/%s/kernel.json' % local_kernel_dir,
],
'dirs': [
'share/jupyter/kernels/',
],
}
moduleclass = 'tools'
......@@ -23,7 +23,7 @@ dependencies = [
('JupyterKernel-Octave', '8.2.0', '-' + version),
('JupyterKernel-PyVisualization', '2023.5', '-' + version),
('JupyterKernel-PyQuantum', '2023.5', '-' + version),
# ('JupyterKernel-PyDeepLearning', '1.1', '-' + version),
('JupyterKernel-PyDeepLearning', '2023.5', '-' + version),
('JupyterKernel-R', '4.2.1', '-' + version),
('JupyterKernel-Ruby', '3.0.5', '-' + version),
('JupyterLab', version),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment