GPU 内核#
除了 Anaconda Notebook 的默认环境外,Anaconda 还提供对由 NVIDIA A10 GPU 提供支持的远程 GPU 内核的访问。这些内核非常适合复杂的计算密集型工作负载,否则这些工作负载在默认环境中运行会非常耗时。您可以选择在 GPU 上运行整个笔记本,也可以选择将 GPU 加速应用于特定单元。
什么是 GPU 内核?
分配 GPU 内核#
您可以使用几种方法将 GPU 内核分配给整个笔记本或单个单元:
打开 Launcher。
在 Notebook 下,单击 Launch a Remote Kernel。
在 Launch a Kernel 对话框中,打开 Environment 下拉列表并选择一个内核。
使用滑块或在文本框中键入数字,为内核会话预留时间(以分钟为单位)。
为您的内核分配一个名称或使用默认内核名称。
单击 Launch a Kernel(启动内核)。
在活动的笔记本中,单击右上角的内核。
如果您尚未启动远程内核,请选择 Connect to remote provider(连接到远程提供程序),然后按照 Launcher(启动器)选项卡中的步骤作。否则,请选择远程内核(默认内核名称为 “nvidia-a10”)。
在 Assign a Kernel 对话框中,确保在下拉列表中选择远程内核。
使用滑块或在文本框中键入数字,为内核会话预留时间(以分钟为单位)。
警告
不要将 Transfer variables(传输变量)开关切换为 On(开)。将切换开关切换到 On 会导致 Notebooks 崩溃。这是当前正在解决的已知问题。
单击 Assign。
使用 GPU 内核#
将 GPU 内核分配给笔记本或单元后,您可以像往常一样运行代码。您应该注意到处理速度显著提高,尤其是对于更复杂的任务。
Anaconda 的默认 GPU 内核“anaconda-01 - nvidia-a10”与支持 GPU 的只读环境相关联,其中包括最新的 Anaconda、AI 和 NVIDIA 软件包。
anaconda-01 中包含的软件包 - nvidia-a10
Package Name |
Package Version |
---|---|
_libgcc_mutex |
0.1 |
_openmp_mutex |
4.5 |
accelerate |
0.34.2 |
aiohappyeyeballs |
2.4.0 |
aiohttp |
3.10.5 |
aiosignal |
1.3.1 |
alembic |
1.13.1 |
altair |
5.3.0 |
annotated-types |
0.7.0 |
anyio |
4.3.0 |
aom |
3.8.2 |
archspec |
0.2.3 |
argon2-cffi |
23.1.0 |
argon2-cffi-bindings |
21.2.0 |
arrow |
1.3.0 |
asttokens |
2.4.1 |
async-lru |
2.0.4 |
async_generator |
1.1 |
attrs |
23.2.0 |
aws-c-auth |
0.7.17 |
aws-c-cal |
0.6.11 |
aws-c-common |
0.9.15 |
aws-c-compression |
0.2.18 |
aws-c-event-stream |
0.4.2 |
aws-c-http |
0.8.1 |
aws-c-io |
0.14.7 |
aws-c-mqtt |
0.10.3 |
aws-c-s3 |
0.5.7 |
aws-c-sdkutils |
0.1.15 |
aws-checksums |
0.1.18 |
aws-crt-cpp |
0.26.6 |
aws-sdk-cpp |
1.11.267 |
babel |
2.14.0 |
beautifulsoup4 |
4.12.3 |
blas |
2.122 |
blas-devel |
3.9.0 |
bleach |
6.1.0 |
blinker |
1.7.0 |
blis |
0.7.11 |
blosc |
1.21.5 |
bokeh |
3.4.1 |
boltons |
24.0.0 |
bottleneck |
1.3.8 |
brotli |
1.1.0 |
brotli-bin |
1.1.0 |
brotli-python |
1.1.0 |
brunsli |
0.1 |
bzip2 |
1.0.8 |
c-ares |
1.28.1 |
c-blosc2 |
2.14.4 |
ca-certificates |
2024.8.30 |
cached-property |
1.5.2 |
cached_property |
1.5.2 |
catalogue |
2.0.10 |
certifi |
2024.8.30 |
certipy |
0.1.3 |
cffi |
1.16.0 |
charls |
2.4.2 |
charset-normalizer |
3.3.2 |
click |
8.1.7 |
cloudpathlib |
0.19.0 |
cloudpickle |
3.0.0 |
colorama |
0.4.6 |
comm |
0.2.2 |
conda |
24.3.0 |
conda-libmamba-solver |
24.1.0 |
conda-package-handling |
2.2.0 |
conda-package-streaming |
0.9.0 |
confection |
0.1.5 |
configurable-http-proxy |
4.6.1 |
contourpy |
1.2.1 |
cryptography |
42.0.5 |
cuda |
12.2.2 |
cuda-cccl |
12.2.140 |
cuda-command-line-tools |
12.2.2 |
cuda-compiler |
12.2.2 |
cuda-cudart |
12.2.140 |
cuda-cudart-dev |
12.2.140 |
cuda-cudart-static |
12.2.140 |
cuda-cuobjdump |
12.2.140 |
cuda-cupti |
12.2.142 |
cuda-cupti-static |
12.2.142 |
cuda-cuxxfilt |
12.2.140 |
cuda-demo-suite |
12.2.140 |
cuda-documentation |
12.2.140 |
cuda-driver-dev |
12.2.140 |
cuda-gdb |
12.2.140 |
cuda-libraries |
12.2.2 |
cuda-libraries-dev |
12.2.2 |
cuda-libraries-static |
12.2.2 |
cuda-nsight |
12.2.144 |
cuda-nsight-compute |
12.2.2 |
cuda-nvcc |
12.2.140 |
cuda-nvdisasm |
12.2.140 |
cuda-nvml-dev |
12.2.140 |
cuda-nvprof |
12.2.142 |
cuda-nvprune |
12.2.140 |
cuda-nvrtc |
12.2.140 |
cuda-nvrtc-dev |
12.2.140 |
cuda-nvrtc-static |
12.2.140 |
cuda-nvtx |
12.2.140 |
cuda-nvvp |
12.2.142 |
cuda-opencl |
12.2.140 |
cuda-opencl-dev |
12.2.140 |
cuda-profiler-api |
12.2.140 |
cuda-runtime |
12.2.2 |
cuda-sanitizer-api |
12.2.140 |
cuda-toolkit |
12.2.2 |
cuda-tools |
12.2.2 |
cuda-visual-tools |
12.2.2 |
cycler |
0.12.1 |
cymem |
2.0.8 |
cython |
3.0.10 |
cytoolz |
0.12.3 |
dask |
2024.4.2 |
dask-core |
2024.4.2 |
dask-expr |
1.0.12 |
datalayer-kernels |
0.0.7 |
dav1d |
1.2.1 |
debugpy |
1.8.1 |
decorator |
5.1.1 |
defusedxml |
0.7.1 |
deprecation |
2.1.0 |
dill |
0.3.8 |
distributed |
2024.4.2 |
distro |
1.9.0 |
entrypoints |
0.4 |
et_xmlfile |
1.1.0 |
exceptiongroup |
1.2.0 |
executing |
2.0.1 |
fastai |
2.7.17 |
fastcore |
1.7.8 |
fastdownload |
0.0.7 |
fastprogress |
1.0.3 |
filelock |
3.16.1 |
fmt |
10.2.1 |
fonttools |
4.51.0 |
fqdn |
1.5.1 |
freetype |
2.12.1 |
frozenlist |
1.4.1 |
fsspec |
2024.3.1 |
gds-tools |
1.9.1.3 |
gflags |
2.2.2 |
giflib |
5.2.2 |
gitdb |
4.0.11 |
gitpython |
3.1.43 |
glog |
0.7.0 |
gmp |
6.3.0 |
gmpy2 |
2.1.2 |
greenlet |
3.0.3 |
h11 |
0.14.0 |
h2 |
4.1.0 |
h5py |
3.11.0 |
hdf5 |
1.14.3 |
hpack |
4.0.0 |
httpcore |
1.0.5 |
httpx |
0.27.0 |
huggingface-hub |
0.25.0 |
hyperframe |
6.0.1 |
icu |
73.2 |
idna |
3.7 |
imagecodecs |
2024.1.1 |
imageio |
2.34.0 |
importlib-metadata |
7.1.0 |
importlib_metadata |
7.1.0 |
importlib_resources |
6.4.0 |
intake |
2.0.7 |
ipykernel |
6.29.3 |
ipympl |
0.9.4 |
ipython |
8.22.2 |
ipython_genutils |
0.2.0 |
ipywidgets |
8.0.4 |
isoduration |
20.11.0 |
jedi |
0.19.1 |
jinja2 |
3.1.3 |
joblib |
1.4.0 |
json5 |
0.9.25 |
jsonpatch |
1.33 |
jsonpointer |
2.4 |
jsonschema |
4.21.1 |
jsonschema-specifications |
2023.12.1 |
jsonschema-with-format-nongpl |
4.21.1 |
jupyter-lsp |
2.2.5 |
jupyter-packaging |
0.12.0 |
jupyter-server |
2.12.0.dev0 |
jupyter-server-mathjax |
0.2.6 |
jupyter-server-proxy |
3.2.1 |
jupyter_client |
8.6.1 |
jupyter_core |
5.7.2 |
jupyter_events |
0.10.0 |
jupyter_server_terminals |
0.5.3 |
jupyter_telemetry |
0.1.0 |
jupyterhub |
4.1.5 |
jupyterhub-base |
4.1.5 |
jupyterlab |
4.1.0b0 |
jupyterlab-git |
0.50.0 |
jupyterlab_pygments |
0.3.0 |
jupyterlab_server |
2.26.0 |
jupyterlab_widgets |
3.0.10 |
jxrlib |
1.1 |
keyutils |
1.6.1 |
kiwisolver |
1.4.5 |
krb5 |
1.21.2 |
langchain |
0.3.0 |
langchain-core |
0.3.1 |
langchain-text-splitters |
0.3.0 |
langcodes |
3.4.0 |
langsmith |
0.1.122 |
language-data |
1.2.0 |
lazy_loader |
0.4 |
lcms2 |
2.16 |
ld_impl_linux-64 |
2.4 |
lerc |
4.0.0 |
libabseil |
20240116.1 |
libaec |
1.1.3 |
libarchive |
3.7.2 |
libarrow |
15.0.2 |
libarrow-acero |
15.0.2 |
libarrow-dataset |
15.0.2 |
libarrow-flight |
15.0.2 |
libarrow-flight-sql |
15.0.2 |
libarrow-gandiva |
15.0.2 |
libarrow-substrait |
15.0.2 |
libavif16 |
1.0.4 |
libblas |
3.9.0 |
libbrotlicommon |
1.1.0 |
libbrotlidec |
1.1.0 |
libbrotlienc |
1.1.0 |
libcblas |
3.9.0 |
libcrc32c |
1.1.2 |
libcublas |
12.4.5.8 |
libcublas-dev |
12.4.5.8 |
libcublas-static |
12.4.5.8 |
libcufft |
11.2.1.3 |
libcufft-dev |
11.2.1.3 |
libcufft-static |
11.2.1.3 |
libcufile |
1.9.1.3 |
libcufile-dev |
1.9.1.3 |
libcufile-static |
1.9.1.3 |
libcurand |
10.3.5.147 |
libcurand-dev |
10.3.5.147 |
libcurand-static |
10.3.5.147 |
libcurl |
8.7.1 |
libcusolver |
11.6.1.9 |
libcusolver-dev |
11.6.1.9 |
libcusolver-static |
11.6.1.9 |
libcusparse |
12.3.1.170 |
libcusparse-dev |
12.3.1.170 |
libcusparse-static |
12.3.1.170 |
libdeflate |
1.2 |
libedit |
3.1.20191231 |
libev |
4.33 |
libevent |
2.1.12 |
libexpat |
2.6.2 |
libffi |
3.4.2 |
libgcc |
14.1.0 |
libgcc-ng |
14.1.0 |
libgfortran-ng |
13.2.0 |
libgfortran5 |
13.2.0 |
libgomp |
14.1.0 |
libgoogle-cloud |
2.22.0 |
libgoogle-cloud-storage |
2.22.0 |
libgrpc |
1.62.2 |
libhwy |
1.1.0 |
libiconv |
1.17 |
libjpeg-turbo |
3.0.0 |
libjxl |
0.10.2 |
liblapack |
3.9.0 |
liblapacke |
3.9.0 |
libllvm14 |
14.0.6 |
libllvm16 |
16.0.6 |
libmamba |
1.5.8 |
libmambapy |
1.5.8 |
libnghttp2 |
1.58.0 |
libnl |
3.9.0 |
libnpp |
12.2.5.30 |
libnpp-dev |
12.2.5.30 |
libnpp-static |
12.2.5.30 |
libnsl |
2.0.1 |
libnvjitlink |
12.4.127 |
libnvjitlink-dev |
12.4.127 |
libnvjpeg |
12.3.1.117 |
libnvjpeg-dev |
12.3.1.117 |
libnvjpeg-static |
12.3.1.117 |
libopenblas |
0.3.27 |
libparquet |
15.0.2 |
libpng |
1.6.43 |
libprotobuf |
4.25.3 |
libre2-11 |
2023.09.01 |
libsodium |
1.0.18 |
libsolv |
0.7.28 |
libsqlite |
3.45.3 |
libssh2 |
1.11.0 |
libstdcxx-ng |
13.2.0 |
libthrift |
0.19.0 |
libtiff |
4.6.0 |
libutf8proc |
2.8.0 |
libuuid |
2.38.1 |
libuv |
1.48.0 |
libwebp-base |
1.4.0 |
libxcb |
1.15 |
libxcrypt |
4.4.36 |
libxml2 |
2.12.6 |
libzlib |
1.2.13 |
libzopfli |
1.0.3 |
llvm-openmp |
18.1.3 |
llvmlite |
0.42.0 |
locket |
1.0.0 |
lz4 |
4.3.3 |
lz4-c |
1.9.4 |
lzo |
2.1 |
mako |
1.3.3 |
mamba |
1.5.8 |
marisa-trie |
1.2.0 |
markdown-it-py |
3.0.0 |
markupsafe |
2.1.5 |
matplotlib-base |
3.8.4 |
matplotlib-inline |
0.1.7 |
mdurl |
0.1.2 |
menuinst |
2.0.2 |
mistune |
3.0.2 |
mpc |
1.3.1 |
mpfr |
4.2.1 |
mpmath |
1.3.0 |
msgpack-python |
1.0.7 |
multidict |
6.1.0 |
munkres |
1.1.4 |
murmurhash |
1.0.10 |
nbclassic |
1.0.0 |
nbclient |
0.10.0 |
nbconvert |
7.16.3 |
nbconvert-core |
7.16.3 |
nbconvert-pandoc |
7.16.3 |
nbdime |
4.0.1 |
nbformat |
5.10.4 |
ncurses |
6.4.20240210 |
nest-asyncio |
1.6.0 |
networkx |
3.3 |
nodejs |
20.9.0 |
nomkl |
1 |
notebook |
7.1.3 |
notebook-shim |
0.2.4 |
nsight-compute |
2024.1.1.4 |
numba |
0.59.1 |
numexpr |
2.9.0 |
numpy |
1.26.4 |
nvidia-cublas-cu12 |
12.1.3.1 |
nvidia-cuda-cupti-cu12 |
12.1.105 |
nvidia-cuda-nvrtc-cu12 |
12.1.105 |
nvidia-cuda-runtime-cu12 |
12.1.105 |
nvidia-cudnn-cu12 |
9.1.0.70 |
nvidia-cufft-cu12 |
11.0.2.54 |
nvidia-curand-cu12 |
10.3.2.106 |
nvidia-cusolver-cu12 |
11.4.5.107 |
nvidia-cusparse-cu12 |
12.1.0.106 |
nvidia-nccl-cu12 |
2.20.5 |
nvidia-nvjitlink-cu12 |
12.6.68 |
nvidia-nvtx-cu12 |
12.1.105 |
oauthlib |
3.2.2 |
openblas |
0.3.27 |
openjpeg |
2.5.2 |
openpyxl |
3.1.2 |
openssl |
3.3.2 |
orc |
2.0.0 |
orjson |
3.10.7 |
overrides |
7.7.0 |
packaging |
24 |
pamela |
1.1.0 |
pandas |
2.2.2 |
pandoc |
3.1.13 |
pandocfilters |
1.5.0 |
parso |
0.8.4 |
partd |
1.4.1 |
patsy |
0.5.6 |
pexpect |
4.9.0 |
pickleshare |
0.7.5 |
pillow |
10.3.0 |
pip |
24 |
pkgutil-resolve-name |
1.3.10 |
platformdirs |
4.2.0 |
plotly |
5.24.1 |
pluggy |
1.5.0 |
preshed |
3.0.9 |
prometheus_client |
0.20.0 |
prompt-toolkit |
3.0.42 |
protobuf |
4.25.3 |
psutil |
5.9.8 |
pthread-stubs |
0.4 |
ptyprocess |
0.7.0 |
pure_eval |
0.2.2 |
py-cpuinfo |
9.0.0 |
pyarrow |
15.0.2 |
pyarrow-hotfix |
0.6 |
pybind11-abi |
4 |
pycosat |
0.6.6 |
pycparser |
2.22 |
pycurl |
7.45.3 |
pydantic |
2.9.2 |
pydantic-core |
2.23.4 |
pygments |
2.17.2 |
pyjwt |
2.8.0 |
pyopenssl |
24.0.0 |
pyparsing |
3.1.2 |
pysocks |
1.7.1 |
pytables |
3.9.2 |
python |
3.11.9 |
python-dateutil |
2.9.0 |
python-fastjsonschema |
2.19.1 |
python-json-logger |
2.0.7 |
python-tzdata |
2024.1 |
python_abi |
3.11 |
pytz |
2024.1 |
pywavelets |
1.4.1 |
pyyaml |
6.0.1 |
pyzmq |
26.0.2 |
rav1e |
0.6.6 |
rdma-core |
51 |
re2 |
2023.09.01 |
readline |
8.2 |
referencing |
0.34.0 |
regex |
2024.9.11 |
reproc |
14.2.4.post0 |
reproc-cpp |
14.2.4.post0 |
requests |
2.31.0 |
rfc3339-validator |
0.1.4 |
rfc3986-validator |
0.1.1 |
rich |
13.8.1 |
rpds-py |
0.18.0 |
ruamel.yaml |
0.18.6 |
ruamel.yaml.clib |
0.2.8 |
s2n |
1.4.12 |
safetensors |
0.4.5 |
scikit-image |
0.22.0 |
scikit-learn |
1.4.2 |
scipy |
1.13.0 |
seaborn |
0.13.2 |
seaborn-base |
0.13.2 |
send2trash |
1.8.3 |
setuptools |
69.5.1 |
shellingham |
1.5.4 |
simpervisor |
1.0.0 |
six |
1.16.0 |
smart-open |
7.0.4 |
smmap |
5.0.0 |
snappy |
1.2.0 |
sniffio |
1.3.1 |
sortedcontainers |
2.4.0 |
soupsieve |
2.5 |
spacy |
3.7.6 |
spacy-legacy |
3.0.12 |
spacy-loggers |
1.0.5 |
sqlalchemy |
2.0.29 |
srsly |
2.4.8 |
stack_data |
0.6.2 |
statsmodels |
0.14.1 |
svt-av1 |
2.0.0 |
sympy |
1.12 |
tblib |
3.0.0 |
tenacity |
8.5.0 |
terminado |
0.18.1 |
thinc |
8.2.5 |
threadpoolctl |
3.4.0 |
tifffile |
2024.4.18 |
tinycss2 |
1.2.1 |
tk |
8.6.13 |
tokenizers |
0.19.1 |
tomli |
2.0.1 |
tomlkit |
0.13.2 |
toolz |
0.12.1 |
torch |
2.4.1 |
torchaudio |
2.4.1 |
torchvision |
0.19.1 |
tornado |
6.4 |
tqdm |
4.66.2 |
traitlets |
5.14.3 |
transformers |
4.44.2 |
triton |
3.0.0 |
truststore |
0.8.0 |
typer |
0.12.5 |
types-python-dateutil |
2.9.0.20240316 |
typing-extensions |
4.11.0 |
typing_extensions |
4.11.0 |
typing_utils |
0.1.0 |
tzdata |
2024a |
ucx |
1.15.0 |
uri-template |
1.3.0 |
urllib3 |
2.2.1 |
wasabi |
1.1.3 |
wcwidth |
0.2.13 |
weasel |
0.4.1 |
webcolors |
1.13 |
webencodings |
0.5.1 |
websocket-client |
1.7.0 |
wheel |
0.43.0 |
widgetsnbextension |
4.0.10 |
wrapt |
1.16.0 |
xlrd |
2.0.1 |
xorg-libxau |
1.0.11 |
xorg-libxdmcp |
1.1.3 |
xyzservices |
2024.4.0 |
xz |
5.2.6 |
yaml |
0.2.5 |
yaml-cpp |
0.8.0 |
yarl |
1.11.1 |
zeromq |
4.3.5 |
zfp |
1.0.1 |
zict |
3.0.0 |
zipp |
3.17.0 |
zlib |
1.2.13 |
zlib-ng |
2.0.7 |
zstandard |
0.22.0 |
zstd |
1.5.5 |
在 GPU 内核单元中传输变量#
由于分配了 GPU 内核的单元在与笔记本其余部分不同的环境中运行,因此必须在单元和笔记本之间传输变量,以确保它们在两个环境中都可以访问。
请按照以下步骤传输变量:
单击分配了 GPU 内核的单元旁边的 Variable transfer。
输入要在笔记本和单元环境之间传输的输入和/或输出。
单击 Set variables(设置变量)。
输入和/或输出现在可以在 GPU 内核单元和笔记本中使用。
管理使用情况#
当您将 GPU 内核分配给笔记本时,系统会要求您预留定义的分钟数,以用于笔记本的 GPU 执行时间。预留时间以积分计算,一个积分等于 100 秒。
笔记本启动后,预留时间开始倒计时。在运行代码和笔记本空闲时,预留时间会继续倒计时。
将鼠标悬停在右上角的倒计时条上,跟踪剩余的预留时间:

谨慎
当您的预留时间低于 5 分钟 (300 秒) 时,倒计时条将变为红色。一旦保留时间达到零,GPU 内核会话将自动终止。
Anaconda 建议通过将 GPU 内核分配给需要更高计算能力的单个单元而不是整个笔记本,或者等待分配 GPU 内核,直到您准备好运行代码,然后在代码执行后立即停止 GPU 内核会话,从而节省 GPU 使用量。
有多种方法可以停止 GPU 内核会话:
从顶部菜单栏中选择 Kernels。
选择 Shut Down All (全部关闭) 以关闭所有内核。
在确认对话框中,单击 Shut Down All。
在分配了 GPU 内核的笔记本中,单击右上角的倒计时条。
在 Jupyter Kernels (Jupyter 内核) 页面上,单击要关闭的内核旁边的 Delete (删除)。
使用历史#
单击 Jupyter Kernels 主页右上角的作下拉列表,然后选择 Usage(使用情况),查看您的 GPU 使用情况统计信息和剩余积分:

Overview (概述) 页面显示您正在运行的 GPU 内核、剩余积分和历史积分消耗。
History (历史记录) 页面显示您的使用历史记录,包括 GPU 会话内核名称、类型、开始日期、结束日期、使用的积分和会话持续时间。
Reservations (预留) 页面显示当前正在运行的任何 GPU 内核、分配给预留会话的积分以及预留开始和结束时间。
使用积分#
Anaconda 提供积分以访问 GPU 计算时间。1 个积分等于 100 秒。请注意,这与为 CPU 使用计算高计算秒数的方式不同。
使用预留时间时,积分会自动扣除。例如,如果您使用 10 分钟的预留时间,则会从您的账户中扣除 6.00 积分。
在 Usage Overview (使用情况概览) 页面上查看剩余的积分。
目前,Anaconda 仅向选定的付费订阅者提供 500 个免费积分。有关升级订阅以获取访问权限的详细信息,请参阅注释。
故障排除#
我的积分用完了#
要请求额外的 GPU 积分,请提交支持票证。
GPU 内核无法启动#
重新加载 Anaconda Notebooks 页面,然后从启动器中单击“启动远程内核”。如果您仍然无法运行 GPU 内核,请提交支持票证。
我的代码未运行#
检查缺少的 import 语句,并验证变量是否已正确传输到 GPU 内核。