当前位置: 首页 > news >正文

独占电脑资源来执行一个应用

1. 背景

在人工智能时代,随着神经网络的发展,训练人工智能模型需要越来越多的硬件资源,例如,利用10万条棋局数据、使用一台PC电脑、完整地训练一次确定性神经网络五子棋模型,需要花费一年半的时间。随着训练数据的增长,需要花费的硬件资源和时间也会越来越多。

毋庸置疑的,消耗资源最多的是算法。但除此之外,其他因素也产生了一定的影响,典型的包括操作系统自身的消耗、多任务之间的切换与干扰等。譬如,操作系统强制更新、重启导致中止训练任务,操作系统内核层面的多任务切换、内核任务执行、应用软件的后台运行等都会抢占硬件资源。

2. 方法

为了在不增加硬件的基础上加速模型训练,可以考虑削减软件的干扰,比如,使用单任务系统而非多任务系统进行训练、在多任务系统中训练期间关闭不必要的服务软件等。本文介绍的是在元神系统中进行模型训练的方法。

(1)编写适用于元神系统的程序

元神系统0.4版支持FASM汇编语言编写程序,其他开发语言或许后续版本会逐步支持。

新建源代码文件demo.asm,输入如下所示的代码:

use32START:pushacall demo1popairet;print string at specified coordinate, e.g y=10 and x=2
demo1:pushamov esi,hello_textmov ebx, 10mov ecx, 2call print_stringpoparet;print string
;input:
;	esi: address to string
;	ebx: y position to print
;	ecx: x position to print
print_string:pushaxor eax, eaximul edi, ebx, 80*2add edi, ecxadd edi, ecxmov ah, 0x0F.next_char:lodsbcmp al, 0je .endmov word [gs:edi], axadd edi, 2jmp .next_char.end:poparethello_text db 'Hello world!',0

(2)编译程序

使用FASM汇编器,在命令行输入命令“fasm.exe  demo.asm  demo.bin”,正确汇编后将会生成可执行程序demo.bin

(3)运行目标程序

将demo.bin文件拷贝到安装有元神系统的U盘的根目录下,将该U盘插入目标电脑上并开机进入元神系统。在元神系统下使用命令ZX来执行目标程序,如下图所示:

(4)备注

本例的代码从屏幕的第10行第2列开始显示字符串“Hello world!”,并非是某个人工智能模型的训练程序,想做模型训练的可照此流程进行操作,只是将此处的代码换成训练用的代码即可。

上图中所示的命令ZX表示执行某个二进制文件(软件程序),完成自己的模型训练等程序编写后,可用此命令来执行编译生成的训练软件。

3. 优点

元神系统的0.4版默认配置为单任务系统,不仅省去了任务切换的消耗,还省去了操作系统内核组件的消耗,将整个机器的所有硬件资源都用于目标软件,这使得模型训练程序等目标软件可以独占所有资源来加速执行。

另外,在目标程序执行的过程中,也不必担心受到操作系统强制更新、其他软件抢占资源等的干扰。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 1111111111111111111111
  • uni-app全局文件与常用API
  • Redis在SpringBoot中配置
  • 【1.0】drf初识
  • 如何使用 API list 极狐GitLab 群组中的镜像仓库?
  • Docker 部署常用中间件(redis,rabbitMQ,mysql8,es,kibana,nginx等)亲测成功~~~
  • Linux没有telnet 如何测试对端的端口状态
  • c++中的斐波那契数列(Fibonacci Sequence)和背包问题(Knapsack Problem)
  • 3. 类的生命周期
  • 深度学习loss
  • 【QT】QT 窗口(菜单栏、工具栏、状态栏、浮动窗口、对话框)
  • 在KubeSphere 容器中快速部署使用 GitLab 并构建 DevOps 项目
  • 使用法国云手机进行面向法国的社媒营销
  • Python 潮流周刊#62:试用自由线程 Python(摘要)
  • 源码编译构建LAMP
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Android优雅地处理按钮重复点击
  • Apache Spark Streaming 使用实例
  • ECS应用管理最佳实践
  • java正则表式的使用
  • python学习笔记-类对象的信息
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 基于webpack 的 vue 多页架构
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 跳前端坑前,先看看这个!!
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 用简单代码看卷积组块发展
  • 智能网联汽车信息安全
  • puppet连载22:define用法
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #微信小程序(布局、渲染层基础知识)
  • #预处理和函数的对比以及条件编译
  • #职场发展#其他
  • $.ajax中的eval及dataType
  • (26)4.7 字符函数和字符串函数
  • (4)logging(日志模块)
  • (C++17) std算法之执行策略 execution
  • (Python) SOAP Web Service (HTTP POST)
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (四)stm32之通信协议
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (一)基于IDEA的JAVA基础10
  • (转)大型网站架构演变和知识体系
  • (转)可以带来幸福的一本书
  • (自适应手机端)行业协会机构网站模板
  • .class文件转换.java_从一个class文件深入理解Java字节码结构