摘要: 向量化计算(vectorization),说的是一个事情:把多次for循环计算变成一次计算。 上图中,左侧为vectorization,右侧是寻常的For loop计算。将多次for循环计算变成一次计算完全仰仗于CPU的SIMD指令集,SIMD指令集可以在一条CPU指令上处理2,4,8或者更多份的数 阅读全文
posted @ 2022-02-28 15:50 QZ-CMD 阅读(1649) 评论(0) 推荐(0) 编辑
摘要: 显存:类似与CPU的内存,扮演者GPU核心与磁盘之间的传递作用。 显存频率:指的是显存本身的速度,一般来说,显存频率越高,显存性能越好。这就好比在GPU核心与显示器之间的运输公路上,你的运输车速度。车跑的越快,当然就能提高总体的传输量。 显存位宽:显存位宽好比你运输公路的车道数,你的显存位宽越大,公 阅读全文
posted @ 2022-02-10 16:20 QZ-CMD 阅读(2158) 评论(0) 推荐(0) 编辑
摘要: 区别:ARM是RISC架构(50多个指令,半开源),X86是CISC架构(至少981个指令,不开源); CISC架构:CPU的运算指令可以操作在寄存器和内存中,复杂性高。 举例:add mem ,reg //把内存数据和寄存器数据相加 RISC架构:CPU只允许load和store指令与内存交互,而 阅读全文
posted @ 2022-01-12 17:30 QZ-CMD 阅读(6174) 评论(1) 推荐(0) 编辑
摘要: 1.卸载原来的cmake,安装依赖 sudo apt-get autoremove cmakesudo apt install build-essential libssl-dev 2.下载新的cmake https://cmake.org/files/ 选择版本:cmake-3.20.6-Linu 阅读全文
posted @ 2022-01-11 17:37 QZ-CMD 阅读(8439) 评论(2) 推荐(1) 编辑
摘要: 1.安装GCC依赖 sudo apt install build-essential manpages-dev software-properties-common gcc g++ make bison binutils gcc-multilib flex 2.迅雷下载 http://ftp.tsu 阅读全文
posted @ 2022-01-11 17:29 QZ-CMD 阅读(478) 评论(0) 推荐(0) 编辑
摘要: CMake:是一个编译(Build)工具,可以通过写CMakeLists.txt文件跨平台生成makefile,不用自己去修改。 makefile:它定义了一系列规则指定工程中哪些文件需要先编译,需要后编译,需要重新编译。优点:它就像一个Shell脚本,可以(make)实现自动化编译,且也可以执行操 阅读全文
posted @ 2022-01-06 16:40 QZ-CMD 阅读(1200) 评论(0) 推荐(1) 编辑
摘要: 如果一个文件开头一行是: #pragma once 头文件内容 (一个预处理指令), 它的作用是确保当前文件在一个编译单元中不被重复包含。效果等同于: #ifndef ERROR_CUH_ #define ERROR_CUH_ 头文件中的内容 #endif 但是更加简洁。 #pragma once在 阅读全文
posted @ 2022-01-05 15:37 QZ-CMD 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 宏: 1.定义变量的时候,可以增加代码的通用性,定义在头文件中,如果修改变量只需要在头文件中修改,而不需要在程序中全部修改; 2.定义函数时,宏也可以写成带参函数的形式:#define add(x,y) x+y,普通函数会在运行时被调用执行栈的进出,增加了开销,这样的宏定义就可以提高执行效率(预处理 阅读全文
posted @ 2022-01-05 11:00 QZ-CMD 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 如果在代码上加上const则告诉编译器此为不会再变的常量,那么就会提前load到寄存器中等待运算,否则的话就会放在缓存(cache)中,等到最后不会变时,需要参与计算了才会load到寄存器。就像DPU中如果不加const那么数据会先放在SPM中等到需要再load到寄存器,对于不会变的常量加上cons 阅读全文
posted @ 2022-01-04 17:58 QZ-CMD 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 2022的第一个工作日,万事胜意。 阅读全文
posted @ 2022-01-04 09:25 QZ-CMD 阅读(26) 评论(1) 推荐(0) 编辑