配置 NIM#

NVIDIA NIM for NV-CLIP (NV-CLIP NIM) 使用 Docker 容器。每个 NIM 都有自己的 Docker 容器,并且有几种配置方法。使用以下参考信息来配置 NIM 容器。

GPU 选择#

在具有一个或多个相同 GPU 的同构环境中,您可以使用 --gpus all 参数来 docker run

在具有 GPU 组合的异构环境中,例如 A6000 Ada 和 GeForce 显示 GPU,您应该仅在具有计算能力的 GPU 上运行工作负载。使用以下任一选项来识别特定的 GPU

  • --gpus 标志。例如:--gpus='"device=1"'

  • 环境变量 CUDA_VISIBLE_DEVICES。例如:-e CUDA_VISIBLE_DEVICES=1

使用 nvidia-smi -L 命令获取要用作输入的设备 ID。此命令应返回类似于以下内容的信息

GPU 0: Tesla H100 (UUID: GPU-b404a1a1-d532-5b5c-20bc-b34e37f3ac46)
GPU 1: NVIDIA GeForce RTX 3080 (UUID: GPU-b404a1a1-d532-5b5c-20bc-b34e37f3ac46)

有关更多信息,请参阅 NVIDIA Container Toolkit 文档

环境变量#

您可以将以下环境变量作为参数传递给 NIM 的 docker run 命令。例如:docker run -e NGC_API_KEY=$NGC_API_KEY,其中 $NGC_API_KEY 是您的 NGC API 密钥的值

环境变量

必需?

默认值

说明

NGC_API_KEY

您必须将此变量设置为您的个人 NGC API 密钥的值。

NIM_CACHE_PATH

/opt/nim/.cache

容器缓存模型工件的位置(在容器内)。

NIM_LOG_LEVEL

DEFAULT

NV-CLIP NIM 服务的日志级别。变量的可能值包括 DEFAULT、TRACE、DEBUG、INFO、WARNING、ERROR、CRITICAL。在大多数情况下,DEBUG、INFO、WARNING、ERROR、CRITICAL 的效果在 Python 3 日志记录日志级别中描述,该级别允许打印 docs 的诊断信息。TRACE 用于调试 Triton 服务器和 uvicorn 中的目的。当 NIM_LOG_LEVEL 为 DEFAULT 时,会将所有日志级别设置为 INFO,但 Triton 服务器日志级别除外,该级别等于 ERROR。

NIM_HTTP_API_PORT

8000

将 NIM 服务发布到容器内指定的端口。确保调整传递给 docker run 的 -p/–publish 标志的端口以反映该值。例如:-p $NIM_SERVER_PORT:$NIM_SERVER_PORT。: 左侧是您的主机地址:端口,并且不必与 $NIM_SERVER_PORT 匹配。: 右侧是容器内的端口,该端口必须与 NIM_SERVER_PORT 匹配(如果未设置,则为 8000)。

NIM_MANIFEST_PROFILE

配置文件选择 中为您的 GPU 选择清单配置文件 ID。默认情况下,NIM 选择非优化配置文件 ID。

NIM_ENABLE_OTEL

1

将此标志设置为 0 以禁用 NIM 中的 OpenTelemetry instrumentation。

#

下表列出了容器内部用于挂载本地路径的路径。

容器路径

必需?

说明

Docker 参数示例

/opt/nim/.cache(或 NIM_CACHE_PATH,如果存在)

不是必需的,但如果未挂载此卷,则容器每次启动时都会重新下载模型。

这是在容器内部下载模型的目录。非常重要的是,可以从容器内部访问此目录。这可以通过将 -u $(id -u) 选项添加到 docker run 命令来实现。

例如,要使用 ~/.cache/nim 作为主机目录来缓存模型,请先执行 mkdir -p ~/.cache/nim,然后再运行 docker run ... 命令。

-v ~/.cache/nim:/opt/nim/.cache -u $(id -u)