作者归档:admin

P104矿卡 知识储备

矿卡默认使用TCC模式( Tesla compute clster)模式,仅用于计算,不用于显示输出,AI推理和绘图完全够用;魔改驱动可以用于图形输出(WDDM模式)

CMD下切换:nvidia-smi -dm 1 转为TCC ,其中数字1变成0 则为WDDM。

可以直接鲁大师直接安装驱动即可。

OLLAMA设置GPU模式

在windows默认是CPU运行 需要修改 系统环境变量,添加一个:OLLAMA_GPU_LAYER 值设置为cuda

默认会带有CUDA 环境,安装好驱动CMD下执行:nvidia-smi 查看CUADA的版本,如果没有,需要自己安装对应版本的CUDA Toolkit。
OLLAMA配置,需要设置 系统环境变量 OLLAMA_GPU_LAYER 值为 cuda


多GPU共同执行

系统环境变量CUDA_VISIBLE_DEVICES中设置GPU的ID值

可以使用:nvidia-smi -L 查看GPU值

设置

CUDA_VISIBLE_DEVICES=0,1 这样OLLAMA运行在0 和1 两个GPU上。

打游戏情况下设置WDDM模式:

选择一:开源魔改驱动:
Release 572.47 · dartraiden/NVIDIA-patcher · GitHub

GitHUB:dartraiden/NVIDIA-patcher

选择二:雨糖科技魔改驱动:

[10/30 更新] 适用于 P106 等设备的 NVIDIA 图形驱动程序 – 雨糖科技魔改版_硬件讨论区_硬件区 卡饭论坛 – 互助分享 – 大气谦和!

选择三:

教程:【p106-100显卡安装使用教程,两分钟学会-哔哩哔哩】 https://b23.tv/100e4Cf

百度网盘: P106-P10…
链接:https://pan.baidu.com/s/1lDn-6uSWo0O-nrDzeRX6lw?pwd=1111 
提取码:1111

阿里云盘: https://www.alipan.com/s/K5MvSBkQyVH
提取码: q31i

驱动都一样,随便下哪一个都可以

ML307R 设备

有3个类型 AT DTU RTU

AT指令版打包了很多很多方法 HTTP MQTT TCP UDP

其余两个版本得你自己手写,只要基础的TCP和UDP,至于HTTP MQTT需要你自己封装~~

结案 ML307R 买AT指令版 切记 !切记!

micropython 操作ML307R

完全可用的ML307的库

https://github.com/maysrp/ML307
from machine import UART
import time

class ML307(object):
    def __init__(self,rx,tx,u_num=1):
        self.uart=UART(u_num,115200,rx=rx,tx=tx,rxbuf=2048,txbuf=2048)
        self.header=[]
        time.sleep(3)
    def command(self,cmd,t=1):
        self.uart.write(cmd+'\r\n')
        time.sleep(t*0.1)
        return self.uart.read()
    def get_response(self,info):
        nx=info.split(b'MHTTPURC: "content"')
        rep_1=nx[1].split(b",")
        rep=b"".join(rep_1[5:])
        return rep
    def get_url(self,url_1,url_2,t=15):
        self.command('AT+MHTTPCREATE="'+url_1+'"')
        self.header_def()
        info=self.command('AT+MHTTPREQUEST=0,1,0,"'+url_2+'"',t)
        self.command('AT+MHTTPHEADER=0')
        return self.get_response(info)
    def get_url_ssl(self,url_1,url_2,t=15):
        self.command('AT+MHTTPCREATE="'+url_1+'"')
        self.command('AT+MHTTPCFG="ssl",0,1,1')
        self.header_def()
        info=self.command('AT+MHTTPREQUEST=0,1,0,"'+url_2+'"',t)
        self.command('AT+MHTTPHEADER=0')
        return self.get_response(info)
    def make_url(self,url):
        url_1="/".join(url.split("/")[0:3])
        url_2="/"+"/".join(url.split("/")[3:])
        return [url_1,url_2]
    def get(self,url):
        ua=self.make_url(url)
        try:
            if "https" in ua[0]:
                ba=self.get_url_ssl(ua[0],ua[1])
            else:
                ba=self.get_url(ua[0],ua[1])
            return ba
        except Exception as e:
            return False
    def post_form(self,info):
        form=""
        for key in info:
            form=form+key+"="+str(info[key])+"&"
        return form
    def post_url(self,url_1,url_2,form_str,t=15):
        self.command('AT+MHTTPCREATE="'+url_1+'"')
        self.header_def()
        self.command('AT+MHTTPHEADER=0,0,0,"Content-Type: application/x-www-form-urlencoded"')
        self.command('AT+MHTTPCONTENT=0,0,0,"'+form_str+'"')
        info=self.command('AT+MHTTPREQUEST=0,2,0,"'+url_2+'"',t)
        self.command('AT+MHTTPHEADER=0')
        return self.get_response(info)
    def post_url_ssl(self,url_1,url_2,form_str,t=15):
        self.command('AT+MHTTPCREATE="'+url_1+'"')
        self.command('AT+MHTTPCFG="ssl",0,1,1')
        self.header_def()
        self.command('AT+MHTTPHEADER=0,0,0,"Content-Type: application/x-www-form-urlencoded"')
        self.command('AT+MHTTPCONTENT=0,0,0,"'+form_str+'"')
        info=self.command('AT+MHTTPREQUEST=0,2,0,"'+url_2+'"',t)
        self.command('AT+MHTTPHEADER=0')
        return self.get_response(info)
    def post(self,url,dic_info):
        form_str=self.post_form(dic_info)
        ua=self.make_url(url)
        try:
            if "https" in ua[0]:
                ba=self.post_url_ssl(ua[0],ua[1],form_str)
            else:
                ba=self.post_url(ua[0],ua[1],form_str)
            return ba
        except Exception as e:
            return False
    def header_def(self):
        lh=len(self.header)
        if lh>1:
            for i in range(lh):
                if i <lh-1:
                    self.command('AT+MHTTPHEADER=0,1,0,"'+self.header[i]+'"')
                else:
                    self.command('AT+MHTTPHEADER=0,0,0,"'+self.header[i]+'"')
        elif lh==1:
            self.command('AT+MHTTPHEADER=0,0,0,"'+self.header[0]+'"')
        else:
            pass
    
        

#范例
mm=ML307(6,7)
mm.header=["User-Agent: MyCustomAgent/1.0","mam: i am hera"]
c=mm.get("http://httpbin.org/get?id=33")
print(c)
info={"aa":23,"zz":11}
cc=mm.post("http://httpbin.org/post",info)
print(cc)


from machine import UART
c=UART(1,115200,rx=6,tx=7,rxbuf=2048,txbuf=2048)


c.write('AT\r\n')
c.read()
c.write('AT+CGDCONT=1,"IPV4V6","cmnet"\r\n')
c.read()
c.write('AT+MIPCALL=1,1\r\n')
c.read()


c.write('AT+MHTTPCREATE="http://qt.gtimg.cn"\r\n')
c.read()
c.write('AT+MHTTPREQUEST=0,1,0,"/q=sh600100"\r\n')
c.read()


关闭实例
AT+MHTTPDEL=0

#下面是操作的步骤
class ml307(object):
    def __init__(self,rx,tx,u_num):
        self.uart=UART(1,115200,rx=rx,tx=tx,rxbuf=2048,txbuf=2048)
    def command(self,cmd,t=1):
        self.uart.write(cmd+'\r\n')
        time.sleep(t*0.1)
        return self.uart.read()
    def get_response(self,info):
        nx=info.split(b'MHTTPURC: "content"')
        rep_1=nx[1].split(b",")
        rep=b"".join(rep_1[5:])
        return rep
    def get_url(self,url,uri):
        self.command('AT+MHTTPCREATE="'+url+'"')
        info=self.command('AT+MHTTPREQUEST=0,1,0,"'+uri+'"',5)
        return self.get_response(info)

ML307

from machine import UART
import time

# c=UART(1,115200,rx=6,tx=7,rxbuf=2048,txbuf=2048)
# c.write('AT\r\n')
# c.read()
# c.write('AT+CGDCONT=1,"IPV4V6","cmnet"\r\n')
# c.read()
# c.write('AT+MIPCALL=1,1\r\n')
# c.read()
# c.write('AT+MHTTPCREATE="http://qt.gtimg.cn"\r\n')
# c.read()
# c.write('AT+MHTTPREQUEST=0,1,0,"/q=sh600100"\r\n')
# c.read()

class ML307(object):
    def __init__(self,rx,tx,u_num=1):
        self.uart=UART(u_num,115200,rx=rx,tx=tx,rxbuf=2048,txbuf=2048)
        time.sleep(3)
#         初始化3s
    def command(self,cmd,t=1):
        self.uart.write(cmd+'\r\n')
        time.sleep(t*0.1)
        return self.uart.read()
    def get_response(self,info):
        nx=info.split(b'MHTTPURC: "content"')
        rep_1=nx[1].split(b",")
        rep=b"".join(rep_1[5:])
        return rep
    def get_url(self,url_1,url_2):
        self.command('AT+MHTTPCREATE="'+url_1+'"')
        info=self.command('AT+MHTTPREQUEST=0,1,0,"'+url_2+'"',10)
        self.command('AT+MHTTPHEADER=0')
        return self.get_response(info)
    def get_url_ssl(self,url_1,url_2):
        self.command('AT+MHTTPCREATE="'+url_1+'"')
        self.command('AT+MHTTPCFG="ssl",0,1,1')
        info=self.command('AT+MHTTPREQUEST=0,1,0,"'+url_2+'"',10)
        self.command('AT+MHTTPHEADER=0')
        return self.get_response(info)
    def make_url(self,url):
        url_1="/".join(url.split("/")[0:3])
        url_2="/"+"/".join(url.split("/")[3:])
        return [url_1,url_2]
    def get(self,url):
        ua=self.make_url(url)
        try:
            if "https" in ua[0]:
                ba=self.get_url_ssl(ua[0],ua[1])
            else:
                ba=self.get_url(ua[0],ua[1])
            return ba
        except Exception as e:
            return False
    def post_form(self,info):
        form=""
        for key in info:
            form=form+key+"="+str(info[key])+"&"
        return form
    def post_url(self,url_1,url_2,form_str):
        self.command('AT+MHTTPCREATE="'+url_1+'"')
        self.command('AT+MHTTPHEADER=0,0,0,"Content-Type: application/x-www-form-urlencoded"')
        self.command('AT+MHTTPCONTENT=0,0,0,"'+form_str+'"')
        info=self.command('AT+MHTTPREQUEST=0,2,0,"'+url_2+'"',15)
        self.command('AT+MHTTPHEADER=0')
        return self.get_response(info)
    def post_url_ssl(self,url_1,url_2,form_str):
        self.command('AT+MHTTPCREATE="'+url_1+'"')
        self.command('AT+MHTTPCFG="ssl",0,1,1')
        self.command('AT+MHTTPHEADER=0,0,0,"Content-Type: application/x-www-form-urlencoded"')
        self.command('AT+MHTTPCONTENT=0,0,0,"'+form_str+'"')
        info=self.command('AT+MHTTPREQUEST=0,2,0,"'+url_2+'"',15)
        self.command('AT+MHTTPHEADER=0')
        return self.get_response(info)
    def post(self,url,dic_info):
        form_str=self.post_form(dic_info)
        ua=self.make_url(url)
        try:
            if "https" in ua[0]:
                ba=self.post_url_ssl(ua[0],ua[1],form_str)
            else:
                ba=self.post_url(ua[0],ua[1],form_str)
            return ba
        except Exception as e:
            return False
    
        

mm=ML307(6,7)
c=mm.get("http://httpbin.org/get?id=33")
print(c)
info={"aa":23,"zz":11}
cc=mm.post("http://httpbin.org/post",info)
print(cc)