Github:
熟悉mt3000编程环境目录结构
1 | hnu_ydy@ln6:/vol8/appsoftware/mt3000_programming_env$ ls |
- ChangeLog文件:记录了更新日志。最新日志的时间作为版本号。
- tools目录
- third-party-lib目录
熟悉dsp端makefile
host_code
1 | ENV_ROOT=/vol8/appsoftware/mt3000_programming_env/hthreads |
- 头文件路径
-I./ -I$(ENV_ROOT)/include - 库的路径
$(ENV_ROOT)/lib/libhthread_host.a - 依赖pthread库
-lpthread
device_code
1 | GCCROOT=/vol8/appsoftware/mt3000_programming_env/dsp_compiler |
- gcc编译器依赖库
export LD_LIBRARY_PATH=/vol8/appsoftware/mt3000_programming_env/third-party-lib:$LD_LIBRARY_PATH
使用查看mt模块状态
查看可用结点
1 | hnu_ydy@ln6:/vol8/appsoftware/mt3000_programming_env$ yhi |
查看加载的模块
-p:指定分区名-N:1个结点-n:1个进程-w:指定结点
1 | hnu_ydy@ln6:/vol8/appsoftware/mt3000_programming_env$ yhrun -p TNG -N 1 -n 1 -w cn7329 lsmod |
mt模块
1 | mt 40960 0 |
0表示目前模块没有被任何进程占用,上面所有设备都是可用的
使用free查看可用内存
free -h
释放1GB mt驱动预留内存
mt驱动预留了多大内存
1 | hnu_ydy@ln6:/vol8/appsoftware/mt3000_programming_env$ yhrun -p TNG -N 1 -n 1 -w cn7329 free -h |
四个簇占用52G,每个dsp簇最大可用13G,申请dsp容量不要超过13G
后端可用8.2G
使用工具查看dsp状态
查看dsp 当前PC值
1 | /vol8/appsoftware/mt3000_programming_env/tools/get_dsp_pc |
1 | hnu_ydy@ln6:/vol8/appsoftware/mt3000_programming_env$ yhrun -p TNG -N 1 -n 1 -w cn7329 /vol8/appsoftware/mt3000_programming_env/tools/get_dsp_pc |
\
[\
1 | hnu_ydy@ln6:/vol8/appsoftware/mt3000_programming_env$ yhrun -p TNG -N 1 -n 1 -w cn7329 /vol8/appsoftware/mt3000_programming_env/tools/get_dsp_pc 0 |
编写异构向量加程序
目的:熟悉hthreads编程
修改GCCROOT,ENV_ROOT,LD_LIBRARY_PATH
1 | GCCROOT=/vol8/appsoftware/mt3000_programming_env/dsp_compiler |
device端
1 | hnu_ydy@ln6:~/copy_test/device_code$ make |
1 | hnu_ydy@ln6:~/copy_test/host_code$ cd ../bin/ |
运行脚本三个参数
- 簇id
- 拷贝的数组的长度
- 要用多少个dsp核
只用1个核
1 | hnu_ydy@ln6:~/copy_test/bin$ yhrun -p TNG -N 1 -n 1 ./copy_host 0 1024 1 |
24核
1 | hnu_ydy@ln6:~/copy_test/bin$ yhrun -p TNG -N 1 -n 1 ./copy_host 0 1024 24 |
插入内联汇编
在copy_kernel.c加入
1 | asm("swait"); |
执行到这条语句会停机
设备端
将数据从A拷贝到C,copy_kernel.c
1 |
|
主机端
copy_host.c
1 |
|
改成向量加运算
add_host.c
1 |
|
add_kernel.c
1 |
|
分析向量加运算中时间开销
使用get clk()函数,分析向量加运算中读取ddr数据的时间开销以及加法运算时间开销
1 | unsigned long t1=0,t2=0,t3=0,t4=0,t5 =0; |
