CNTK中GPU信息的获取

简介: # CNTK中GPU信息的获取 ## device接口 CNTK提供了device接口,可以访问gpu的几个基本参数。 ### 获取所有的设备 首先可以通过cntk.device.all_devices方法来获取当前的设备 ```python >>> C.device.all_devices() (GPU[0] GeForce GTX 960M, CPU) ``

CNTK中GPU信息的获取

device接口

CNTK提供了device接口,可以访问gpu的几个基本参数。

获取所有的设备

首先可以通过cntk.device.all_devices方法来获取当前的设备

>>> C.device.all_devices()
(GPU[0] GeForce GTX 960M, CPU)
AI 代码解读

获取GPU

知道了系统里有多少设备了之后,就可以通过设备号来通过device.gpu来访问GPU设备了。
例:

>>> C.device.gpu(0)
GPU[0] GeForce GTX 960M
AI 代码解读

GPU属性

通过device.gpu(id)获取了gpu的引用之后,我们就可以通过device.get_gpu_properties函数来获取属性:

>>> prop = C.device.get_gpu_properties(C.device.gpu(0))
>>> prop
<cntk.cntk_py.GPUProperties; proxy of <Swig Object of type 'CNTK::GPUProperties *' at 0x000001A1195C3420> >
AI 代码解读

属性有:

  • device_id: 设备号
  • name: 名字
  • version_major: 主版本号
  • version_minor: 副版本号
  • cuda_cores: CUDA核
  • total_memory: 显存大小

例:

>>> prop.name
'GeForce GTX 960M'
>>> prop.version_major
5
>>> prop.version_minor
0
>>> prop.cuda_cores
960
>>> prop.total_memory
2048
>>> prop.device_id
0
AI 代码解读

如何监控GPU内存的分配与释放

如果想要监控内存使用情况的话,上面的简单的API是不够用的,我们使用trace功能吧:

C.cntk_py.set_gpumemory_allocation_trace_level(1)
AI 代码解读

例,运行时打印出来的效果是这样的:

Allocating Matrix<float> (Rows = 1, Cols = 5416) buffer on DeviceId = 0; GPU Memory Free = 29 MB of 2048 MB
Allocated DeviceData = 000000050323AA00
Allocating Matrix<float> (Rows = 1, Cols = 8124) buffer on DeviceId = 0; GPU Memory Free = 29 MB of 2048 MB
Allocated DeviceData = 0000000504E17A00
Allocating Matrix<float> (Rows = 1, Cols = 5416) buffer on DeviceId = 0; GPU Memory Free = 29 MB of 2048 MB
Allocated DeviceData = 0000000502A38E00
Freed buffer<float> DeviceData = 0000000502A38E00 on DeviceId = 0; GPU Memory Free = 29 MB of 2048 MB
Freed buffer<float> DeviceData = 0000000504E17A00 on DeviceId = 0; GPU Memory Free = 29 MB of 2048 MB
Freed buffer<float> DeviceData = 000000050323AA00 on DeviceId = 0; GPU Memory Free = 29 MB of 2048 MB
Freed buffer<float> DeviceData = 0000000567440000 on DeviceId = 0; GPU Memory Free = 98 MB of 2048 MB
Allocating Matrix<float> (Rows = 650, Cols = 8124) buffer on DeviceId = 0; GPU Memory Free = 98 MB of 2048 MB
Allocated DeviceData = 0000000541BC0000
Freed buffer<char> DeviceData = 0000000502B3E600 on DeviceId = 0; GPU Memory Free = 78 MB of 2048 MB
Allocating Matrix<float> (Rows = 650, Cols = 5416) buffer on DeviceId = 0; GPU Memory Free = 78 MB of 2048 MB
Allocated DeviceData = 0000000543000000
Allocating Matrix<float> (Rows = 1, Cols = 5416) buffer on DeviceId = 0; GPU Memory Free = 65 MB of 2048 MB
Allocated DeviceData = 000000050323AA00
Freed buffer<float> DeviceData = 000000050323AA00 on DeviceId = 0; GPU Memory Free = 65 MB of 2048 MB
Freed buffer<float> DeviceData = 0000000543000000 on DeviceId = 0; GPU Memory Free = 78 MB of 2048 MB
Allocating Matrix<char> (Rows = 1, Cols = 5416) buffer on DeviceId = 0; GPU Memory Free = 78 MB of 2048 MB
Allocated DeviceData = 0000000502B3E600
Freed buffer<float> DeviceData = 0000000541BC0000 on DeviceId = 0; GPU Memory Free = 98 MB of 2048 MB
Allocating Matrix<float> (Rows = 650, Cols = 8066) buffer on DeviceId = 0; GPU Memory Free = 98 MB of 2048 MB
Allocated DeviceData = 0000000541BC0000
Allocating Matrix<float> (Rows = 1, Cols = 8066) buffer on DeviceId = 0; GPU Memory Free = 78 MB of 2048 MB
Allocated DeviceData = 0000000504E17A00
Freed buffer<float> DeviceData = 0000000504E17A00 on DeviceId = 0; GPU Memory Free = 78 MB of 2048 MB
Freed buffer<float> DeviceData = 0000000541BC0000 on DeviceId = 0; GPU Memory Free = 98 MB of 2048 MB
Allocating Matrix<float> (Rows = 3377, Cols = 1) buffer on DeviceId = 0; GPU Memory Free = 98 MB of 2048 MB
Allocated DeviceData = 00000005050DCA00
Freed buffer<float> DeviceData = 00000005050DCA00 on DeviceId = 0; GPU Memory Free = 98 MB of 2048 MB
Allocating Matrix<float> (Rows = 3377, Cols = 8066) buffer on DeviceId = 0; GPU Memory Free = 98 MB of 2048 MB
AI 代码解读
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
打赏
0
0
0
0
577
分享
相关文章
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
Windows监控:基于Prometheus+Grafana监控CPU、内存、磁盘、网络、GPU信息
Windows监控:基于Prometheus+Grafana监控CPU、内存、磁盘、网络、GPU信息
Windows监控:基于Prometheus+Grafana监控CPU、内存、磁盘、网络、GPU信息
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
386 61
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
介绍如何使用ACK Edge与虚拟节点满足DeepSeek部署的弹性需求。
阿里云当选UALink联盟董事会成员,推进新一代GPU互连技术!
阿里云当选UALink联盟董事会成员,推进新一代GPU互连技术!
164 2
2025年阿里云GPU服务器的租赁价格与选型指南
随着AI、深度学习等领域的发展,GPU服务器成为企业及科研机构的核心算力选择。阿里云提供多种GPU实例类型(如NVIDIA V100、A100等),涵盖计算型、共享型和弹性裸金属等,满足不同场景需求。本文详解2025年阿里云GPU服务器的核心配置、价格策略及适用场景,帮助用户优化选型与成本控制,实现高效智能计算。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等