• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链
您的位置:首页 > 网络安全 >区块链 > 如何使用深度学习硬件的空余算力自动挖矿

如何使用深度学习硬件的空余算力自动挖矿

作者:中兴大数据 字体:[增加 减小] 来源:互联网 时间:2018-11-03

中兴大数据向大家分享了如何使用深度学习硬件的空余算力自动挖矿,其中包含空余算力自动挖矿等知识点,遇到此问题的同学们可以参考下
人工智能和虚拟货币是 2017 年的两大重要名词,作为一名开发者,如何充分利用自己昂贵的硬件设备呢?本文将给你一种有趣的解决方案。

如果没有 GPU,现代深度学习是不可能发展到今天的水平的。即使是 MNIST 数据集上的简单示例算法在 GPU 和 CPU 上运行速度的差别也有 10-100 倍。但是,当你没有优化所有设置时,GPU 空闲的算力该作何用?



既然拥有了强大的计算设备,我们不免会考虑到虚拟货币挖矿。事实上这并不是很难,你需要的只是注册一个钱包,选择一种货币,设置好挖矿软件然后运行即可。只需要 Google 一下「如何用 GPU 开始挖矿?」,你就能看到大量介绍性文章手把手地教你如何操作。


优化效率


在本文中,我们需要加入另一个问题:如何让挖矿变得更加方便、自动化,同时在我需要让计算机全力运行深度学习模型时不让工作受到打扰。理想的解决方案是让计算机能够即时检查 GPU 的资源占用,当没有进程使用的时候自动开始挖矿;而在 TensorFlow、PyTorch 或其他工具需要开始计算的时候,监视器会发出命令让计算机立即停止挖矿。
这个问题应该很好解决,但我至今未在网上发现类似的东西,所以我自己尝试写了一个 GPU 监视程序。它不仅适用于挖矿任务,而且还可以用于其他各种任务。
NOTE. 在开始之前,你必须明白:希望你不要把这种计算资源优化方法用在办公室的计算机上,本人对于任何滥用造成的后果概不负责。


先决条件


首先,我的项目 gpu_mon 以及源代码已经发布在 GitHub 上了:https://github.com/Shmuma/gpu_mon
它由 Python 3 编写,其后没有标准库之外的依赖库,但它需要运行在 Linux 系统上,所以如果你的机器是 Windows 系统的话,抱歉了:)
gpu_mon 的运行逻辑如上所述:它会定期检查 GPU 的负载,如果没有进程使用的话,它会自动运行你在 config 文件中选择的程序。如果有其他程序打开了 GPU,指定程序会被自动停止以释放资源。所以在设置完以后,你只需要打开监视程序,随后像往常一样使用即可,从运行挖矿程序到全速运行深度学习模型之间仅有几秒钟的转换时间。
为了获取接入 GPU 设备的进程列表(假设是/dev/nvidia*),我们使用了 fuser 命令行工具。在基于 debian 的发行版上(如 ubuntu 或 debian),工具是由 psmisc 工具包提供的——它是系统安装的一部分,所以没有特殊的资源库需要安装。如果你的系统中没有 fuser(你可以通过在 shell 上运行「which fuser」命令来进行检查),则你需要事先安装一下。


调试


整个项目的配置都是在一个单独的配置文件中完成的,它是 ini 文件格式,存在于~/.config/gpu_mon.conf 目录中。示例配置文件如下所示,同时在 GitHub 中也可以找到。
配置文件包含四个部分:
1.默认全局设置 [defaults]。在这里只有一个选项,它指定监视软件对 GPU 设备资源用量的检查频率。默认情况下,每十秒钟检测系统中的所有 GPU 一次。
2.GPU 设置可以用 gpu-前缀的方式指定任意 GPU。你也可以用 ID 将不同的 GPU 分组(/dev/nvidiaX 设备文件上的整数)。对于每个 GPU 组你都可以设置一个程序列表,其中列出不会抢占挖矿任务的程序。这样我们就可以应对 nvidia-smi 这样的工具了——它会使用 GPU 设备,但不应该妨碍挖矿。
3.挖矿进程配置部分,可以使用 process-前缀的方式指定一个或多个。对于每个项目来说你可以指定需要运行的挖矿程序,程序所在的目录,限制挖矿程序利用 GPU 资源的程度(这是通过导出 CUDA_VISIBLE_DEVICES 环境来完成的),日志文件名称以及挖矿程序输出。
4.TTY 监控部分,他可以让你选择伪终端监控,优先于挖矿程序。在默认情况下,此选项是关闭的。
以下是我在一台双 GPU 设备上的挖矿设置文件:

[defaults]
; how frequently perform GPU open and tty checks
interval_seconds=10
; configuration of GPUs to monitor for external program access. It could be several such sections
[gpu-all]
; list of comma-separated gpu indices or ALL to handle all available gpus
gpus=ALL
; comma-separated list of programs which can access gpu and should be ignored
ignore_programs=nvidia-smi
; program which will be started on gpu during idle time
[process-0]
dir=/tmp
cmd=/var/bin/miner
; list of gpu indices or ALL to handle all available gpus. If not ALL, CUDA_VISIBLE_DEVICES will be set
gpus=0
log=/var/log/miner-0.log
[process-1]
dir=/tmp
cmd=/var/bin/miner
; list of gpu indices or ALL to handle all available gpus. If not ALL, CUDA_VISIBLE_DEVICES will be set
gpus=1
log=/var/log/miner-1.log

; configuration of tty monitoring
[tty]
enabled=False


该工具的设置可以允许我们控制系统中每个 GPU 和每个单独进程的计算资源占用。所以我们可以让深度学习进程只占用第一块 GPU(通过导 CUDA_VISIBLE_DEVICE=0),而不打扰第二块 GPU 上的挖矿进程。但如果我们想要充分释放资源,两块 GPU 上的挖矿程序都会被关闭。


正如之前所说的,一切都是透明的,你不应在开启/关闭挖矿程序上耗费精力,只需要专注于 TensorFlow 和 PyTorch 上的优化即可。现在,你可以开始使用 gpu_mon,获取利润了!

自动开始 GPU_MON

为了让 gpu_mon 不会打扰到自己,我们需要确保它会在系统启动后自动在后台运行。有很多工具都可以做到这点,但我更喜欢 supervisord,它是一个小型进程,会自动检查正在运行的程序,如果发现未响应会自动重启程序。为了开启 gpu_mon 的工作,安装 supervisord,在/etc/supervisor/conf.d/gpu_mon.conf 进行好设置就足够了。

下面是我的设置:
[program:gpu_mon]
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-11-03某乎上面对于区块链的理解(一)
  • 2018-11-03升级您的以太坊智能合约的最佳实践
  • 2018-11-03瑞波币Ripple(XRP)最新详细教程
  • 2018-11-03各区块链架构的横向比较
  • 2018-11-03区块链简介-什么是联盟链
  • 2018-11-03什么是分叉?什么是比特币分叉?
  • 2018-11-03TGIC手机APP钱包使用详细指南
  • 2018-11-03零基础了解“区块链技术”的前世今生!
  • 2018-11-03INFURA如何解决以太坊的其他大规模挑战
  • 2018-11-03什么是区块链代币

文章分类

  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链

最近更新的内容

    • 可信计算(Trusted Computing)概述
    • 区块链的结构及术语
    • 区块链知识分享——Ripple(瑞波)
    • INFURA如何解决以太坊的其他大规模挑战
    • IBO的金融原理和应用方向分析
    • 巨头征战新零售,实体小玩家如何求得生机?
    • P网(poloniex)数字货币交易所使用教程
    • 理解加密经济学(Cryptoeconomics)
    • 谈谈“分叉”与“空投”这两大糖果派发方式
    • 敖说|一文读懂比特币UTXO,TA其实没那么神秘!

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有