0%

要点

  1. 看合同 查看滤波方法
  2. 使用库 ,有无滤波方法的实现库,对比rdl程序库和pdf文档

简介

使用随身wifi(Ufi)设备刷入linux,再安装python等一系列工具进行基础开发环境建设

安装开发软件

1
2
3
4
5
apt install python3 python3-pip python3-venv
python3 -m venv ./venv
cd venv
source bin/activate
pip install numpy matplotlib opencv-python opencv opencv-contrib-python pyzbar pyserial

测试程序

1
2
3
4
5
6
7
8
#!/bin/env python3
#Author: Divint3
#encoding:utf-8
import cv2
camera = cv2.VideoCapture(2) # 这里使用VideoCapture(2)的原因是此板原来有两个video设备,因为其底板是高通方案,所以有板载摄像头的驱动但是摄像头并未实装,所以在按照次序进行操作时,usb摄像头在第三个映射文件上也就是/dev/video2
ret, frame = cap.read()
cv2.imwrite("1.jpg", frame)
camera.release() # 释放摄像头

参考资料

Python+opencv调用摄像头实现拍照并保存_zlj0133的博客-CSDN博客_python调用摄像头拍照保存

初始化swarm集群

1
docker swarm init --advertise-addr=$(本机公网IP地址) --data-path-port=6789
  • 为什么要变更数据端口呢?因为腾讯云会拦截原有端口上的数据报文,导致集群无法正常工作,现象是overlaynetwork无法链接到任意节点

加入swarm集群

1
docker swarm join --token $(token) $(集群manager公网IP地址):2377 --advertise-addr=$(本机公网IP地址)

参考资料

步骤

  1. 安装N卡驱动,使用任何一个驱动管理程序即可。
  2. 使用nvidia-smi查看适配的CUDA版本,这里适配的是11.6版本。
1
2
3
4
5
6
7
8
9
10
11
12
Sat Jul  2 19:32:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 512.15 Driver Version: 512.15 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... WDDM | 00000000:01:00.0 Off | N/A |
| N/A 42C P0 N/A / N/A | 123MiB / 4096MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
  1. 前往官网进行往期CUDA版本下载 cuda-toolkit下载地址,点击DownloadNow,发现目前的版本为11.7,和我们需要的不适配,向下翻找,找到Archive of Previous CUDA Releases,下载我们需要的11.6版本。
  2. 下载对应系统的可执行文件执行,然后运行安装,选择最小化安装即可。该安装程序会自动配置环境变量及识别已经安装的Visual Stdio环境。
  3. 打开Visual Stdio进行开发,创建新项目,搜索模板CUDA发现出现了新的项目模板。使用该项目模板。
  4. 打开示例程序,发现运行不起来。我琢磨了好久,查了好多资料没有找到解决方案,始终无法编译出obj文件,最后只好设置ld.exe的位置到PATH全局变量,使用nvcc手动编译。
  5. 使用命令nvcc.exe -c .\kernel.cu -o .\x64\Debug\kernel.cu.obj进行编译,需要注意的是,此时编译出来的obj文件无法进行调试,需要加上参数-g 方能进行调试。
  6. 再使用调试器即可正常看到运行结果
  7. 使用nvidia-smi查看程序是否运行在显卡上,结果如下,该程序运行于显卡之上且可调试。
    1
    2
    3
    4
    5
    6
    7
    8
    +-----------------------------------------------------------------------------+
    | Processes: |
    | GPU GI CI PID Type Process name GPU Memory |
    | ID ID Usage |
    |=============================================================================|
    | 0 N/A N/A 19968 C+G ...ge\Application\msedge.exe N/A |
    | 0 N/A N/A 21008 C ...64\Debug\CudaRuntime1.exe N/A |
    +-----------------------------------------------------------------------------+
  8. 但是根据资料查到,原生调试时程序并不会运行于GPU而是CPU之上,需要借助插件才能实现GPU运行,但是我这里不需要使用插件即可运行于GPU之上,但是为了严谨,这里贴出插件的位置。位于工具栏->扩展->Nsight,需要打开Break On Launch才能进行调试。

参考资料

CUDA及cuDNN安装指南

CUDA和cuDNN对应版本

CUDA历史版本下载链接

cuDNN历史版本下载链接

CUDA开发环境搭建 - 知乎 (zhihu.com)

CUDA入门示例1:两个整型数组相加 - 知乎 (zhihu.com)

配置文件

daemon.json

1
2
3
4
5
6
7
8
9
10
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.mirrors.ustc.edu.cn"
]
}