文章目录
一、什么是内存?
1.1、简介 —— 随机存取存储器(Random Access Memory,RAM)
1.2、内存容量
1.3、查看电脑内存
1.4、监控电脑内存
1.5、文件属性:大小 + 占用空间
二、(RAM)内存是CPU的主内存,(VRAM)显存是GPU的专用内存
2.1、内存(RAM) + 显存(VRAM)
2.2、中央处理器(CPU) + 图形处理器(GPU)
2.3、GPU内存 = GPU专用内存(显存) + GPU共享内存
2.4、数据类型 + 内存范围
(1)数据的存储单元(从小到大):Byte + bit + KB + MB + GB + TB + PB + EB + ZB + YB
(2)数据类型(每个字符的字节数 + 数据范围 + 内存范围)
(3)NumPy 与 PyTorch 数据类型对比表(如:numpy不支持float16)
(4)打印不同数据类型的 dtype 属性
三、【主机 = 内存 + CPU】 —— 【设备 = 显存 + GPU】
3.1、高效的 CUDA 程序,往往需要最大限度地减少 CPU 和 GPU 之间的通信开销
3.2、CUDA:线程 + 块 + 网格
四、Python内存管理
4.1、python是如何分配内存的?
4.2、python采用自动内存管理机制
4.3、自动内存管理机制:缺点
4.4、自动内存管理机制:优化方法
(1)sys.getrefcount():查看对象的引用计数
(2)gc.set_threshold():设置垃圾回收的第 i 代阈值(内存池)
五、项目实战
5.1、CPU内存
(1)计算图像内存(三种方式)
(2)获取CPU内存(总内存 + 已占用内存 + 未占用内存)+ 获取进程内存(实际内存 + 峰值内存)
(3)手动释放内存
5.2、GPU显存
(1)【命令行】查看GPU设备信息:Win + R + dxdiag:显示 - 显示内存VRAM
(2)【GPUtil】获取GPU显存:总内存 + 已占用内存 + 未占用内存 —— 直接读取显卡状态信息
(3)【Torch.cuda】获取进程显存:总显存 + (最大)已分配显存 / 已缓存显存 —— 适用于PyTorch模型训练
5.3、时间
(1)获取当前日期和时间
(2)获取当前时间戳
(3)计算运行时间
(4)获取网络时间(亚洲/上海时区),并计算产品有效期
5.4、UUID(Universally Unique Identifier,通用唯一标识符)
5.5、随机种子,用于确保可复现性 —— 集成多个组件:random、numpy、PyTorch、TensorFlow、JAX
一、什么是内存?
1.1、简介 —— 随机存取存储器(Random Access Memory,RAM)
随机存取存储器(Random Access Memory,RAM):是计算机中用于临时存储数据的一种硬件组件。它是计算机的主要内存之一,用于存储正在运行的程序和操作系统所需的数据。
主要特点:
临时存储:RAM 存储的数据是临时的,意味着当计算机关闭或重启时,其中的数据会被清空。这与永久存储设备(如硬盘驱动器)不同,后者可以长期保存数据。
随机存取:RAM 具备随机访问能力,这意味着它可以快速访问存储中的任何数据,而无需按照特定的顺序来读取。这使得 RAM 非常适合用作计算机的工作内存,以快速存取和处理数据。