tencent cloud

数据湖计算

产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
退费说明
欠费说明
调整配置费用说明
快速入门
新用户开通全流程
DLC 数据导入指引
一分钟入门 DLC 数据分析
一分钟入门 DLC 权限管理
一分钟入门分区表
开启数据优化
跨源分析 EMR Hive 数据
标准引擎配置指引
配置数据访问策略
操作指南
控制台操作介绍
开发指南
运行环境
SparkJar 作业开发指南
PySpark 作业开发指南
查询性能优化指南
UDF 函数开发指南
系统约束
客户端访问
JDBC 访问
TDLC 命令行工具访问
第三方软件联动
Python 访问
实践教程
通过 Power BI 访问 DLC 数据操作指南
建表实践
使用 Apache Airflow 调度 DLC 引擎提交任务
StarRocks 直接查询 DLC 内部存储
Spark 计算成本优化实践
DATA + AI
使用 DLC 分析 CLS 日志
使用角色 SSO 访问 DLC
资源级鉴权指南
在 DLC 中实现 TCHouse-D 读写操作
DLC 原生表
SQL 语法
SuperSQL 语法
标准 Spark 语法概览
标准 Presto 语法概览
保留字
API 文档
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
通用类参考
错误码
配额与限制
第三方软件连接DLC操作指南
常见问题
权限类常见问题
引擎类常见问题
功能类常见问题
Spark 作业类常见问题
DLC 政策
隐私协议
数据处理和安全协议
服务等级协议
联系我们
文档数据湖计算实践教程DATA + AIDLC + Wedata 使用 GPU 资源教程

DLC + Wedata 使用 GPU 资源教程

PDF
聚焦模式
字号
最后更新时间: 2025-11-14 17:58:42
数据湖计算 DLC 支持购买 GPU 资源,并为机器学习资源组挂载 GPU 资源,用于推理训练作业。
通过本篇文档,您可根据我们提供的 demo 代码示例,体验用 GPU 资源进行模型训练。
说明:
资源组:Spark 标准引擎计算资源的二级队列划分,资源组隶属于父级标准引擎且同一引擎下的资源组彼此资源共享。
DLC Spark 标准引擎的计算单元( CU )和 GPU(卡数)可按需被划分到多个机器学习资源组中,并设置每个资源组可使用计算单元( CU )和 GPU(卡数)的最小值和上限从而满足多租户、多任务等复杂场景下的计算资源隔离与工作负载的高效管理。
目前 DLC 购买 GPU 资源、机器学习资源组、WeData Notebook 探索、机器学习均为白名单功能,如需使用,请 提交工单 联系 DLC 与 WeData 团队开通购买 GPU 资源、机器学习资源组、Notebook、MLflow 服务。

开通账号与产品

开通账号与产品

DLC 账号与产品开通功能均需腾讯云主账号进行开通,主账号完成后,默认主账号下所有子账号均可使用。如果需要调整,可通过 CAM 功能进行调整。具体操作指引请参见 新用户开通全流程
WeData 账号与产品开通请参见 准备工作数据湖计算 DLC(DLC)
WeData 的 MLflow 服务开通为主账号粒度,一个主账号操作完成后,该主账号下的所有子账号均可使用。
需要提供客户的地域信息、APPID 、主账号 UIN 、VPC ID 和子网 ID ,其中 VPC 和子网信息用于 MLflow 服务的网络打通操作。
说明:
因产品中多个功能需要进行网络打通操作,为确保网络连通性,建议后续购买执行资源组、创建 Notebook 工作空间等操作都在这一个 VPC 和子网中进行。

在 DLC 购买 GPU 计算资源

在产品服务开通完成后,您可先通过数据湖计算 DLC 购买 GPU 计算资源。
2. 选择“创建资源”。
3. 按需购买包年包月标准引擎,计算类型选择 GPU 类型,可选择不同规格的机器类型及机器数量,型号详情及价格参考计费文档
说明:
1. 购买账号需要有财务权限或是主账号进行购买。
2. GPU 计算资源的计费模式当前仅支持包年包月模式。
3. 购买成功后,首次启动会有数分钟的等待时间,如长时间未能完成启动,请 提交工单
4. GPU 计算引擎暂不支持数据探索和数据作业相关的业务场景。

创建机器学习资源组

标准引擎购买完成后,返回引擎管理页面,您需要在该引擎下,创建机器学习资源组,才能开始进行机器学习相关功能。
1. 单击管理资源组/引擎名称
2. 进入资源组页面后,单击左上角创建资源组按钮。
3. 创建机器学习资源组类型。
业务场景选择:机器学习。
框架类型:您可根据实际业务场景,选择适合的框架创建:ML 开源框架(支持单节点计算模式)和 Spark MLlib(支持 Spark 集群模式)
注意:
1. 对于 ML 开源框架,若您需要使用 GPU 资源,内置镜像请选择 tensorflow2.20-gpu-py311-cu124 或 pytorch2.6-gpu-py311-cu124 。
2. 对于 Spark MLlib 框架,若您需要使用 GPU 资源,内置镜像请选择 spark3.5-tensorflow2.20-gpu-py311-cu124 或 spark3.5-pytorch2.6-gpu-py311-cu124 。
资源配置:可按需选择。
注意:
1. 若您选择 ML 开源框架,GPU 资源支持1(卡)步长分配;
2. 若您选择 Spark MLlib 框架,GPU资源支持1(卡)步长分配。
配置完成后,单击确认返回资源组列表页。数分钟后,可单击列表页上方刷新按钮进行确认。

前往 Wedata-Notebook 功能进行 demo 实践

资源组与 demo 数据集创建完成后,前往 WeData 通过 Notebook 和 MLflow 进行模型训练实践。

创建 WeData 项目并关联 DLC 引擎

1. 创建项目或选择已有的项目,详情请参见 项目列表
2. 在配置存算引擎中选择所需的 DLC 引擎。

购买执行资源组并关联项目

如果您需要在编排空间中周期性调度 Notebook 任务,请购买调度资源组并与指定项目进行关联。详情请参见 调度资源组配置
操作步骤:
1. 进入“执行资源组 > 调度资源组 > 标准调度资源组”,单击创建
2. 资源组配置。
地域:调度资源组所在地域需要与存算引擎所在地域保持一致,例如购买了国际站-新加坡地域的 DLC 引擎,则需要购买相同地域的调度资源组。
VPC 和子网:建议直接选择1.1中的 VPC 和子网,如选择其他 VPC 和子网,需要确保所选 VPC 和子网与1.1中的 VPC 和子网之间网络互通。
规格:按照任务量进行选择。
3. 创建完成后,在资源组列表的操作栏单击关联项目,将该调度资源组与所需使用的项目进行关联。

创建 Notebook 工作空间

1. WeData 控制台,进入“项目列表 > 项目 > 离线开发 > Notebook 探索 ”,并创建或使用已有工作空间。
2. 创建工作空间时,请选择已购买的 GPU 资源的引擎。
3. 完成创建后,可进入创建的工作空间进行后续操作。

创建 Notebook 文件

在左侧资源管理器可以创建文件夹和 Notebook 文件,注意:Notebook 文件需要以(.ipynb)结尾。在资源管理器中,预先内置了一个 demo Notebook 文件,支持用户开箱即用。

选择内核(kernel)

1. 在对应的 Notebook 文件右上角单击选择内核
2. 单击选择内核后,在弹出的下拉选项中选择“ DLC 资源组”。
3. 单击 DLC 资源组后,在下一级选项中选择 DLC 数据引擎中按需选择您创建的资源组。使用本文档提供的 demo 进行体验时请选择 ML 开源框架中镜像为 TensorFlow 类型的资源组。内核选择中的内核命名规则为:框架类型 - (机器学习资源组名称),选择时可按您创建机器学习的命名及框架类型实现区分。

运行 Notebook 文件

1. 完成内核选择后,进行页面刷新,在对应的 Notebook 文件中单击全部运行或单独运行对应的代码块后,页面将弹出内核配置窗口,此时可编辑/确认初始化配置。
2. 执行实践教程:利用 TensorFlow 矩阵乘法操作对 GPU 进行负载测试,集成实时资源监控功能,并输出计算性能指标。​​
import tensorflow as tf
import time
import subprocess
import threading
import os

def setup_gpu():
gpus = tf.config.list_physical_devices("GPU")
if not gpus:
raise RuntimeError("No GPU detected")
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
print(f"GPUs detected: {len(gpus)}")

def monitor_gpu(interval=5, duration=30):
end_time = time.time() + duration
while time.time() < end_time:
try:
# Get nvidia-smi output and extract only the essential line
result = subprocess.run(['nvidia-smi', '--query-gpu=utilization.gpu,memory.used,memory.total,temperature.gpu', '--format=csv,noheader,nounits'],
capture_output=True, text=True, check=True)
# Parse the output to get clean values
gpu_util, mem_used, mem_total, temp = result.stdout.strip().split(', ')
# Format the output in a single compact line
print(f"GPU: {gpu_util}% | Mem: {mem_used}/{mem_total}MB | Temp: {temp}C")
except Exception as e:
print(f"Monitor error: {e}")
time.sleep(interval)

def run_gpu_stress(size=4096, duration=30):
with tf.device("/GPU:0"):
a = tf.random.normal([size, size], dtype=tf.float32)
b = tf.random.normal([size, size], dtype=tf.float32)

@tf.function
def matmul_step():
return tf.matmul(a, b)

_ = matmul_step() # warm-up

print(f"Running GPU stress for {duration}s at full capacity")
start = time.time()
iters = 0
while time.time() - start < duration:
_ = matmul_step()
iters += 1

print(f"Completed {iters} iterations in {time.time() - start:.2f}s")

if __name__ == "__main__":
try:
setup_gpu()

monitor_thread = threading.Thread(target=monitor_gpu, args=(5, 30))
monitor_thread.start()

run_gpu_stress(size=4096, duration=30)

monitor_thread.join()
print("Test completed successfully")

except Exception as e:
print(f"Error: {e}")

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈