- 博客(79)
- 收藏
- 关注
原创 tensorflow的显存分配机制
默认情况下,TensorFlow 会映射进程可见的所有 GPU(取决于 CUDA_VISIBLE_DEVICES)的几乎全部内存。这是为了减少内存碎片,更有效地利用设备上相对宝贵的 GPU 内存资源。为了将 TensorFlow 限制为使用一组特定的 GPU,可以使用 tf.config.set_visible_devices 方法。在某些情况下,希望进程最好只分配可用内存的一个子集,或者仅在进程需要时才增加内存使用量。TensorFlow 为此提供了两种控制方法。
2024-09-22 14:03:19 274
原创 tensorflow同步机制
在 TensorFlow 中,多算子(operators)和多核(CPU 核或 GPU 核)同步机制旨在提高深度学习模型的计算效率和资源利用率。
2024-09-21 22:55:34 1242
原创 tensorflow算子调用示例(MINIST)
本文以MINIST为例,阐述在模型训练时,tensorflow框架每个算子具体调用kernel的过程。
2024-09-21 22:54:55 917
原创 tensorflow底层架构
TensorFlow 的架构分为多个层次,从上层的 Python 和 C++ 客户端到底层的设备管理和分布式计算。上层提供了用户友好的 API,用于定义和执行计算图;中层处理数据流的执行和分布式计算;底层则负责与硬件设备的交互,确保计算任务能够高效地在不同设备上执行。这种分层结构使得 TensorFlow 既能方便用户使用,也能够高效处理大规模的深度学习任务。
2024-09-21 22:53:51 1259
原创 pytorch自动微分原理
Tensor是PyTorch实现多维数组计算和自动微分的关键数据结构。一方面,它类似于numpy的ndarray,用户可以对Tensor进行各种数学运算;另一方面,当设置之后,在其上进行的各种操作就会被记录下来,用于后续的梯度计算,其内部实现机制被称为。Variable变量:在PyTorch早期版本中,Tensor只负责多维数组的运算,自动微分的职责是Variable完成的,因此经常可以看到因而产生的包装代码。而在0.4.0版本之后,二者的功能进行了合并,使得自动微分的使用更加简单了。
2024-09-21 22:50:59 634
原创 pytorch 显存分配机制
动态显存分配:PyTorch 在需要时动态分配显存,而不是一次性占用所有可用显存。缓存分配器 (Caching Allocator):避免频繁分配和释放显存,减少内存碎片,优化性能。显存监控工具:提供了多种 API 来监控显存使用情况,并在需要时手动清空缓存。自动混合精度 (AMP):通过降低部分计算的精度来减少显存占用。多 GPU 管理:每个 GPU 独立管理显存,支持多 GPU 下的显存分配和调度。pytorch显存管理机制优化参考。
2024-09-21 22:48:59 1275
原创 pytorch 同步机制
在 PyTorch 中,当多个算子(operators)和内核(kernels)被并行执行时,PyTorch 通过 CUDA 的和机制来管理并发和同步。CUDA 是一个异步计算平台,计算任务会被放入一个队列中异步执行,PyTorch 为了确保不同算子之间的依赖关系正确,使用了流和事件来管理任务的调度和同步。
2024-09-21 22:48:18 1056
原创 pytorch 算子调用kernel示例(MINIST)
当进行 MNIST 分类任务时,PyTorch 中的每一个算子会根据设备类型(CPU 或 CUDA)自动选择合适的内核(kernel)进行计算。本文以GPU为例,介绍算子调用kernel的过程。
2024-09-21 22:47:11 1209
原创 pytorch的动态计算图机制
Pytorch的计算图由节点和边组成,节点表示张量或者Function,边表示张量和Function之间的依赖关系。Pytorch中的计算图是动态图。这里的动态主要有两重含义。第一层含义是:计算图的正向传播是立即执行的。无需等待完整的计算图创建完毕,每条语句都会在计算图中动态添加节点和边,并立即执行正向传播得到计算结果。第二层含义是:计算图在反向传播后立即销毁。下次调用需要重新构建计算图。
2024-09-21 22:46:21 886
原创 pytorch 架构结构分析
Pytorch是一个基于Torch框架的,开源的Python深度学习库。Torch框架一开始是不支持Python的,后来成功把Torch移植到python上,所以叫它Pytorch。Torch是一个科学计算框架,广泛支持将GPU放在首位的机器学习算法。
2024-09-21 22:44:07 1254
原创 mxnet 的显存分配机制
MXNet 的显存分配机制在性能优化和资源管理方面起着至关重要的作用。它通过高效的内存管理和调度机制来分配和释放显存,确保在训练深度学习模型时最大限度地利用 GPU 的资源。MXNet 的显存分配机制类似于其他深度学习框架(如 PyTorch 和 TensorFlow),但它有自己的实现细节,主要依赖于(Memory Pool)机制来避免频繁的显存分配和释放。
2024-09-21 22:38:11 914
原创 mxnet同步机制
在 MXNet 中,多个算子和多个内核(kernel)的同步机制依赖于和,以及其内部的。这些机制确保了在 GPU 上进行深度学习任务时,能够有效地管理算子之间的并行执行、同步和调度。
2024-09-21 22:37:07 900
原创 mxnet算子调用kernel示例(MINIST)
在使用 MXNet 执行 MNIST 任务时,每个步骤都会调用相应的算子,这些算子最终会调度到对应的 GPU kernel(内核)。MXNet 支持异步执行和自动微分,能够通过 GPU 的加速来提高深度学习任务的性能。在 GPU 上执行卷积、全连接等操作时,MXNet 通常会调用 NVIDIA 提供的 cuDNN 库来实现这些操作。首先,定义一个简单的卷积神经网络来处理 MNIST 数据集:2. 数据加载与模型训练在实际训练过程中,我们会加载 MNIST 数据集,并将数据传输到 GPU 上进行训练:3
2024-09-21 22:36:11 1026
原创 mxnet系统架构
到目前为止,我们基本上涵盖了定义一个 Operator 的全部接口。使用 Operator 接口来实现你的计算逻辑 (Forward 和 Backward)。使用 OperatorProperty 接口来:向运算符类传递参数(可以使用 Init 接口)使用 CreateOperator 接口来创建运算符正确地实现描述操作符的接口,例如参数名,等等正确地实现 InferShape 接口来设置输出张量的形状。
2024-09-21 22:34:33 1202
原创 神经网络构建原理(以MINIST为例)
Adam 优化器通过结合动量和自适应学习率进行参数更新。详细的更新公式在上面的回答中已经给出。计算当前梯度∇θL∇θL的加权平均,用来估计梯度的期望。这个一阶动量主要是累积之前的梯度,使得更新方向更加平滑。mtβ1mt−11−β1∇θLmtβ1mt−11−β1∇θLβ1\beta_1β1是一阶动量的衰减率,通常取值为 0.9。mtm_tmt是当前的动量(梯度的指数加权平均)。
2024-09-21 22:29:35 1286
原创 cuda与机器学习
CUDA是由NVIDIA开发的并行计算平台和编程模型,允许开发者利用支持CUDA的NVIDIA GPU来加速计算密集型任务。CUDA提供了扩展的C/C++语言,以及用于在GPU上执行并行计算的API。线程线程块线程的集合:线程块是多个线程的集合,组成一个可在 GPU 上执行的基本调度单元。线程块索引:通过 、、 获取线程块的索引。线程块大小:通过 、、 获取线程块的维度大小。全局线程索引:结合线程块索引和线程索引,可以计算线程在整个网格中的全局索引。网格线程块的集合:网格是线程块的集合,用于组
2024-09-19 09:37:00 1756
原创 第一章 基于CUDA的异构并行计算:异构计算
指的是,使用一个处理器来执行一个应用,为任务选择适合它的架构,比如CPU适合复杂的逻辑计算,GPU适合大量简单重复的计算。
2024-08-17 16:41:55 429
原创 使用dcoker部署hadoop集群时ssh localhost 一直出现Permission denied, please try again.
我在使用docker部署hadoop集群时,想测试三台节点的ssh连接情况,ssh一直不通,甚至ssh lcoalhost 也会出现Permission denied, please try again的问题,后来想到这三台节点是从同一个镜像运行出来的容器,是不是没有设置密码(类似于Linux第一次进入root时需要sudo passwd 设置新密码),后来设置密码后,过来ssh 成功了。如果这样还不行的话建议检查一下/etc/ssh/sshd_config 文件是否允许远程密码登录。
2024-04-21 16:20:58 326
原创 java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file
【代码】java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file。
2024-04-18 22:38:53 1159
原创 ubuntu 更新国内源 apt-get update报错 E: Unable to correct problems, you have held broken packages.
题主在使用ubuntu安装openssh-server时,国外源使用不了,更新完国内源也不行 ,update一直过不去,之前也碰到这个问题,今天看到一位博主的文章。Ubuntu 12.04 (LTS)代号为precise。Ubuntu 14.04 (LTS)代号为trusty。Ubuntu 16.04 (LTS)代号为xenial。Ubuntu 18.04 (LTS)代号为bionic。Ubuntu 20.04 (LTS)代号为focal。Ubuntu 15.04 代号为vivid。
2024-04-17 23:27:12 433
原创 root@localhost‘s password: Permission denied, please try again.
编辑、etc/ssh/sshd_config文件 ,将PermitRootLogin这行改为yesroot@ubuntu:/home/ubuntu# vim /etc/ssh/sshd_config重新加载改文件 /etc/init.d/ssh restart
2024-04-04 17:19:18 313
原创 将jupyter notebook文件导出为pdf(简单有效)
(可能有少部分图片显示不了)网上也有其他方法,比如将其转换为.tex再转为PDF等,但个人觉得这是最简单的一种。
2024-03-27 23:58:50 6381 5
原创 hadoop伪分布式环境启动时web端访问不到
在搭建hadoop伪分布式环境时,开启hdfs-site.sh后,web端访问不到,但是节点已经正常开启:在尝试关闭防火墙后也没有效果,后来在/etc/hosts文件中加入本机的ip和主机名映射后,重新初始化namenode,web端可以正常访问(hadoop版本3以后默认端口是9870,之前的是50070):
2024-03-26 22:59:17 349
原创 ubuntu使用apt-get install 时报Failed to fetch
配置一个国内的镜像源即可:(一下命令是在root下,user模式需加sudo)最后执行,apt-get update.
2024-03-26 20:46:30 393
原创 虚拟机可以上外网,但是ping不通主机
在使用虚拟机时,第一次可以连接上主机,但是后面就一直连不上,经过查询各种资料,尝试关闭防火墙、重新配置网关,更改VMnet8的ip等,都不行,甚至一度以为是自己的网卡出现了问题,后来偶然间重启一下VMnet8就好了。。。。。。
2024-03-25 22:51:16 167
原创 JetBrains产品激活码激活(IntelliJ IDEA,PyCharm,PhpStorm,WebStorm,CLion,GoLand等)
【代码】JetBrains产品激活码激活(IntelliJ IDEA,PyCharm,PhpStorm,WebStorm,CLion,GoLand等)
2024-03-23 13:18:06 7079 2
原创 (已解决)jupyter notebook设置代码提示时出现错误ModuleNotFoundError: No module named ‘notebook.base‘
将notebook版本降为6.1.0即可(我的是7.1.0,python是3.10)
2024-03-21 23:15:00 1134 2
原创 hadoop学习笔记
HDFS:分布式文件系统MAPREDUCE:分布式运算程序开发框架HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具HBASE:基于HADOOP的分布式海量数据库(列式存储)ZOOKEEPER:分布式协调服务基础组件Oozie:工作流调度框架Sqoop:数据导入导出工具Flume:日志数据采集框架数据处理流程采集数据->数据预处理->导入HIVE仓库—>ETL->报表统计——>结果导出导MYSQL->数据可视化特点1.高可靠性:HADOOP的HA,会有两个namenode,避免了单点故障。
2024-03-21 09:06:30 1373
原创 hadoop分布式环境搭建
(hadoop、jdk文件链接:https://pan.baidu.com/s/1wal1CSF1oO2h4dkSbceODg 提取码:4zra)前四步可参考。
2024-03-18 21:15:45 1122
原创 centos虚拟机设置静态IP地址
vim编辑文件 /etc/sysconfig/network-scripts/ifcfg-ens33重启即可。
2024-03-18 16:49:15 315
原创 hadoop伪分布式环境搭建详解
(hadoop、jdk文件链接:https://pan.baidu.com/s/1wal1CSF1oO2h4dkSbceODg 提取码:4zra)(四个文件全部在hadoop-2.7.1/etc/hadoop/目录下,vim编辑即可 )mapred-site.xml.template复制到 mapred-site.xml中。(更改/etc/profile后,需重新加载,source /etc/profile)再进入mapred-site.xml编辑。赋值时不要有空格,图中有空格。
2024-03-14 16:22:03 761
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人