找回密码
 新注册用户
搜索
查看: 9723|回复: 15

[原创] 充分调用GPU资源——利用Process Lasso自动控制功能修改进程....

[复制链接]
发表于 2013-8-19 22:02:30 | 显示全部楼层 |阅读模式
本帖最后由 arthur200000 于 2015-5-30 22:47 编辑

众所周知,进行GPU运算时,必须使用一些CPU资源。在运行计算时,常常由于GPU计算程序的CPU资源获取不足,导致其运算效率低下,造成严重的分数损失。常见的处理方法有空出一个线程。
然而GPU运算的CPU使用率一般很低,特别是CUDA类程序。为了这么小的使用率就空出一个线程,显然有些浪费。于是又有了另一种方法——任务管理器手动调节优先级。
可是这种方法也有其显而易见的问题——麻烦。要是是低端卡跑大包这种东西也就算了,一天下来也用不上几次。可是20分钟虐一个包的高端卡玩家总不能这样吧?
于是,笔者发现了一个工具:Process Lasso
Process Lasso原先被设计为一个CPU优先级优化工具,其目的是自动提高前台程序CPU优先级以获得更高的性能,同时降低占用率过高的进程优先级降低CPU占用率。这一点也就说明该程序有自动修改优先级的功能,虽然其降低优先级到低于标准的做法对于BOINC来说并不有利。【剧透:可以关掉】

顺便给要写脚本自己自动化的各位一点提示好了……
另外 wmic 的 where 其实挺强大的……cmd 写个 sleep + goto 死循环跑着就好了。
  1. REM WINDOWS CMD
  2. :LOOP
  3. REM See the superuser link below.
  4. wmic process where "CommandLine like '%setiathome%cuda%'" CALL setpriority 'above normal'
  5. GOTO:LOOP
复制代码
  1. # POSIX shell
  2. # setprio PID prio
  3. setprio ()
  4. {
  5.     local nice_level = 0;
  6.     [ -z "$2" ] && return 2; # 2: WRONG FORMAT
  7.     echo "$1" | grep -qx '\d*' || return 2;
  8.     if uname | grep _NT; then # It is Windows! http://superuser.com/questions/620724
  9.         wmic process where ProcessID=$1 CALL setpriority "$2";
  10.     else
  11.         case "$2" in
  12.             idle)
  13.                 nice_level=20;;
  14.             'below normal')
  15.                 nice_level=14;;
  16.             normal)
  17.                 nice_level=10;;
  18.             'above normal')
  19.                 nice_level=6;;
  20.             'high priority')
  21.                 nice_level=2;;
  22.             realtime)
  23.                 nice_level=-16;;
  24.             *)
  25.                 echo Wrong nice_level format.;
  26.                 echo Acceptable Options:;
  27.                 echo "idle, 'below normal', normal, 'above normal', 'high priority', 'real time'";
  28.                 return 2
  29.             ;;
  30.         esac;
  31.         renice "$nice_level" "$1";
  32.     fi
  33. }
复制代码

评分

参与人数 1基本分 +4 收起 理由
YI_YU + 4 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-8-19 22:10:27 | 显示全部楼层
笔者安装试用了这个程序,发现了一个喜闻乐见的好消息——这功能可以关掉……(工具栏选项里面)
好了,这下可以高枕无忧了。

界面

界面

接着我们再进行提高GPU程序优先级的设置。
GPU程序的关键词也就这几个:opencl,gpu,cuda,ati,那么就用通配符方法加进去(工具栏——选项——配置默认CPU优先级),设置优先级为“高”或“正常”:

制定程序规则

制定程序规则

滤纸只有一个可怜的核芯显卡,所以只有这些关键字。又因为EAH的OPENCL实在太那啥,所以我发中二开了实时……
按下确定,(下面那个勾我也不知道到底要不要),大功告成!
如果你无聊,顺便改改I/O优先级什么的。
接下来就确保你一开头让它开机启动了……
回复

使用道具 举报

发表于 2013-8-19 22:05:05 | 显示全部楼层
这种问题自己写个脚本就行了吧,只调节BOINC进程的优先级,不用干扰其他进程
回复

使用道具 举报

发表于 2013-8-19 22:31:46 | 显示全部楼层
优先级的调控个人任务并无太大必要。
是否空出线程其实问题也不大。
回复

使用道具 举报

发表于 2013-8-20 01:13:50 | 显示全部楼层
其实GPu任务的优先级本来就比CPU高吧
回复

使用道具 举报

发表于 2013-8-20 08:25:21 | 显示全部楼层
CPU得分率本来就低,少一个线程也没关系
回复

使用道具 举报

发表于 2013-8-20 18:13:22 | 显示全部楼层
arthur200000 发表于 2013-8-19 22:10
笔者安装试用了这个程序,发现了一个喜闻乐见的好消息——这功能可以关掉……(工具栏选项里面)
好了,这 ...

完全不存在这样的进程:*opencl*.exe,*gpu*.exe
回复

使用道具 举报

发表于 2013-8-20 18:52:00 | 显示全部楼层
有的进程的扩展名没有EXE的
回复

使用道具 举报

 楼主| 发表于 2013-8-22 16:42:44 来自手机 | 显示全部楼层
wpf999 发表于 前天 18:13
引用:   arthur200000 发表于 2013-8-19 22:10   
笔者安装试用了这个程序,发现了一个喜闻乐见的好消息——这功能可以关掉……(工具栏选项里面)
好了,这 ......

通配符啊来自: iPhone客户端
回复

使用道具 举报

 楼主| 发表于 2013-8-22 16:43:24 来自手机 | 显示全部楼层
poem那巨大的cpu占用我看算了来自: iPhone客户端
回复

使用道具 举报

 楼主| 发表于 2013-8-22 16:44:00 来自手机 | 显示全部楼层
acp134 发表于 前天 18:52
有的进程的扩展名没有EXE的...

见ls来自: iPhone客户端
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-3-28 18:24

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表