首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制GPU机器从一个功能开始和停止?

控制GPU机器从一个功能开始和停止?
EN

Stack Overflow用户
提问于 2020-01-14 11:50:11
回答 3查看 328关注 0票数 0

多亏了谷歌云,我们在云上运行GPU获得了免费积分,但我们在一开始就卡住了。

我们曾经通过机器学习模型每天获取图像进行处理,但不知何故,GPU系统并不是整天都在使用,有没有办法控制这个系统在所有图像通过一个函数处理后启动和停止?我们可以在特定的日期和时间通过cron调用它。

我听说过aws lambda,但不确定google cloud能为这个问题提供什么。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-14 21:47:20

您可以针对此用例使用Cloud Scheduler,也可以在镜像可用时触发Cloud Function并对其进行处理。

然而,300美元的免费配额是用于培训和创新目的,而不是用于实际生产应用。

票数 0
EN

Stack Overflow用户

发布于 2020-10-01 21:03:08

如果你愿意付出努力,你可以使用Google Kubernetes引擎来实现。据我所知,这是目前在GCP上自启动和停止GPU实例的唯一方法。为此,您需要在Kubernetes集群中添加一个具有自动伸缩功能的GPU节点池。

代码语言:javascript
复制
gcloud container node-pools create gpu_pool \
   --cluster=${GKE_CLUSTER_NAME} \
   --machine-type=n1-highmem-96 \
   --accelerator=nvidia-tesla-v100,8 \
   --node-taints=reserved-pool=true:NoSchedule  \
   --enable-autoscaling \
   --min-nodes=0 \
   --max-nodes=4 \
   --zone=${GCP_ZONE} \
   --project=${PROJECT_ID}

确保将环境变量与实际项目ID等进行细分,并确保使用GCP专区,该专区实际上具有您想要的GPU类型(并不是所有专区都具有所有GPU类型)。确保指定区域,如europe-west1-b,而不是europe-west1

此命令将一次启动所有节点,但它们将在默认集群配置中自动伸缩节点的默认超时后自动关闭(对我来说,我认为是5分钟)。但是,您可以更改该设置。

然后,您可以从CLI或使用显式请求GPU资源的任何可用的Kubernetes API客户端库启动Kubernetes Job (而不是部署)。

以下是一些包含主要必要组件的示例job.yaml,但是,您需要根据您的集群配置进行调整:

代码语言:javascript
复制
apiVersion: batch/v1
kind: Job
metadata:
  name: some-job
spec:
  parallelism: 1
  template:
    metadata:
      name: some-job
      labels:
        app: some-app
    spec:
      containers:
        - name: some-image
          image: gcr.io/<project-id>/some-image:latest
          resources:
            limits:
              cpu: 3500m
              nvidia.com/gpu: 1
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: app
                    operator: In
                    values:
                      - some-app
              topologyKey: "kubernetes.io/hostname"
      tolerations:
        - key: reserved-pool
          operator: Equal
          value: "true"
          effect: NoSchedule
        - key: nvidia.com/gpu
          operator: Equal
          value: "present"
          effect: NoSchedule
      restartPolicy: OnFailure

重要的是这样设置容差,并将实际资源限制设置为您想要的GPU数量。否则它就不会起作用。

然后将启动节点(如果没有可用的节点),并计算作业。在指定的自动伸缩超时后,空闲节点将再次关闭。

我是从here得到这个想法的。

票数 1
EN

Stack Overflow用户

发布于 2020-01-14 16:48:07

您可以尝试通过遵循here上的指南来优化实例的GPU使用率,但是,您可能需要通过实例中的cron或其他东西来管理它。

另外,在使用GPU免费试用时,请注意您的积分使用情况。免费试用只给你300美元的积分,然而,正如在here上看到的那样,图形处理器的使用是昂贵的,如果你不小心的话,你可能会在1到2周内花光所有的积分。

希望这篇文章对你有用!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59727294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档