按键精灵制作精灵手游自动售卖装备功能脚本

这次还是在上次脚本的基础功能上,增加了自动售卖装备的功能,需要角色是至尊账户,因为是开启的随身商店,只有至尊角色有这个功能,使用教程可以查看上次那个笔记:https://sulao.cn/post/774.html使用脚本的前提要求是分辨率使用1280*720,dpi240,不要开启模拟器的极致多开模式,这样屏幕取色会不准确,我本地调试代码测试的都是雷电模拟器,此次也对上次的血条和灵力条取色进行了调整,开启脚本最开始会采样当前的血条灵力条的初始颜色,所以开启脚本之前确保自己的血条和灵力条已回满(高于70%即可)下面是脚本内容如下:Dim bl...

阅读全文

nginx反向代理http/https、rpc/grpc、ws/wss

通常在一个集群会有一个统一的API入口,一般都是使用nginx来做统一的入口代理,然后到后端再转发到对应的服务API上。今天就整合之前的一些代理的配置,方便后续使用。1.nginx代理http/https请求http {    server {        listen 80;       # 监听端口 ...

阅读全文

ncc-test工具安装和使用方法

NCCLTests是一个开源的测试套件,由NVIDIA开发并维护,目的是为了帮助开发者更好地理解和利用NCCL的功能。它提供了多种并发和消息传递模式的基准测试,以评估多GPU间的通信效率,并且支持各种CUDA和MPI环境。我们在多机多卡进行测试的时候确保环境中高性能网络已经部署并配置好,注意,如果没有IB之类的高性能网络支持,多机多卡通信效率肯定会很低,延迟大。NCCL可以加速GPU通信,降低通信开销,它允许两个特定的GPU之间直接交换数据,同时NCCL还支持集体通信,这些操作涉及多个GPU之间的数据交换。集合通讯模式1.P2P(Point-to-po...

阅读全文

centos7安装CUDA Tookit+CUDA Samples+NCCL+OpenMPI

NVIDIA®CUDA®工具包为创建高性能GPU加速应用提供了发展环境。使用CUDA工具包,您可以在GPU加速嵌入式系统、桌面工作站、企业数据中心、基于云的平台和HPC超级计算机上开发、优化和部署您的应用程序。工具包包括GPU加速库、调试和优化工具、C/C++编译器以及一个运行时库,以便在包括x86、Arm和POWER在内的主要架构上构建和部署您的应用程序。科学家和研究人员可以利用内置功能在多GPU配置中分配计算,开发从单个GPU工作站到拥有数千个GPU的云安装的应用程序。简单介绍下我们就来进行cudatook...

阅读全文

英伟达GPU异常问题常见处理方法

日常在一些程序中进行GPU调用,这些cuda程序异常崩溃的时候,有时会遇到掉卡掉驱动、没有进程但是显存被占用的情况,这个时候我们可以通过以下命令来尝试进行处理。如果是掉卡的话可以使用lspci查看下主板上还能否检测到GPU卡lspci | grep -i nvidia00:03.0 VGA compatible controller: NVIDIA Corporation Device 1f03 (rev a1)00:...

阅读全文

containerd环境下通过的进程PID查询POD的方法

之前我们有记录过一个笔记,是docker环境下通过查看到的进程PID号来查找到拥有该进程的POD,具体可以查看我之前的笔记:https://sulao.cn/post/925.html近期基本都在将docker环境切换到containerd环境,所以这次根据需求来更新下containerd环境下根据PID查找对应POD的方法。查找的方法基本和原来没有太大区别,只是有个别步骤会一样,下面我们来一起看看怎么查询。首先我们还是获取我们要查询的PID号。例如我查询的是我的使用GPU资源的进程例如我们要查询tf_cnn_benchmarks这个进程ps ...

阅读全文

英伟达GPU配置MIG实例和原理介绍

MIG通过虚拟地将单个物理GPU划分为更小的独立实例,这项技术涉及GPU虚拟化,GPU的资源,包括CUDA内核和内存,被分配到不同的实例。这些实例彼此隔离,确保在一个实例上运行的任务不会干扰其他实例。使用MIG,每个实例的处理器都有独立和隔离的路径通过整个存储系统,芯片上的crossbar端口,L2cache,内存控制器和DRAM地址总线都被唯一地分配给一个单独的实例。这确保了单个用户的工作负载可以在相同的L2缓存分配和DRAM带宽下,以可预测的吞吐量和延迟运行,即使其它任务正在抖动它们自己的缓存或饱和它们的DRAM接口。MIG能够对可用的GPU计算资...

阅读全文

Nvidia Device PLugin工作原理机制

我们在k8s使用英伟达GPU时想让POD自动挂载我们需要部署nvidia-device-plugin组件,如何部署使用可以查看我之前的笔记:https://sulao.cn/post/978.html英伟达的deviceplugin组件主要在整个工作过程中做了如下工作1.deviceserver的启动和注册deviceserver在启动的时候会检测/var/lib/kubelet/device-plugins/kubelet.sock文件,如果该文件存在,那么deviceserver会通过该sock文件向kubelet注册信息。2.device的...

阅读全文

目前主流几种GPU共享技术原理

目前市面上有很多GPU共享技术,在GPU共享的模式下,在用户态共享和内核态进行共享是不一样的,根据以下视图,越往底层,共享对用户的影响越小,安全性也能对应提升。下面我就来简单介绍下目前GPU共享的一些技术1.CUDA劫持:rCUDA,vCUDA等CUDA劫持是较多方案选择的共享方法,属于时间复用。它通过劫持对CudadriverAPI的调用来做到资源隔离。共享模块一般位于在CudadriverAPI之上。优势:API开源,是非Nvidia官方技术人员能够较容易实现的共享技术。劣势:1.CUDA库升级活跃,而当CUDA库升级时,劫持方案也需要不断适...

阅读全文

GPU虚拟化MIG和vGPU技术对比

在vGPU模式下,GPU上的内存是静态分区的,但计算能力在共享GPU的VM之间分时共享。在这种模式下,当虚拟机在GPU上运行时,它“拥有”GPU的所有计算能力,但只能访问其共享的GPU内存。在MIG模式下,内存和计算能力是静态划分的。当VM在MIG模式下使用GPU时,它只能访问分配给它的内存,并且只能使用分配给它的计算核心。因此,即使GPU中剩余的计算核心(即未分配给该VM的核心)处于空闲状态,VM也无法使用这些空闲核心。无论VM使用哪种模式来执行其工作负载,计算结果都是相同的。唯一的区别在于使用挂...

阅读全文