dsp_notes 地平线SoC 中如何使用dsp https://developer.d-robotics.cc/forumDetail/118364000835765794 参考地平线开发者论坛中的帖子,如何拿到了他们的开发包,找到对应的sample code,是比较容易移植和开发的。需要注意的是编译 dsp 程序需要 xtensa 的license。 dsp 和 soc 之间是server 和 client 的 2024-11-05 dsp
tensorrt_usage 官方文档 onnx2trt trtexec 123export LD_LIBRARY_PATH=/usr/local/TensorRT-8.6.1.6/lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=/home/docker/tmp/TensorRT/out:/usr/local/TensorRT-8.6.1.6/lib:/usr/local/lib:/usr 2024-10-24 cuda tensorrt
cuda_debug cuda 调试方法 程序串行 https://stackoverflow.com/questions/55020514/cudagetlasterror-which-kernel-execution-raised-it 环境变量CUDA_LAUNCH_BLOCKING 设为1 env CUDA_LAUNCH_BLOCKING=1 ./app cuda-gdb 调试 https://develope 2024-09-26 cuda
python_cpp_interaction 1. Python调用C++ python调用C++需要编译出 python 的 module so,是一种区别于普通依赖库的动态库,可以通过pybind11 中的cmake 函数进行生成。 - step 1 首先要配置好pybind11 的依赖,其是纯头文件库,在CMakeLists.txt 中可以通过CPM 拉取,除此之外还需要依赖的 eigen, pybind11中有一些矩阵计算需要用到的。 2024-09-21 cpp python
lambda_call_once 作为局部静态变量只初始化一次 lambda函数可以作为局部静态变量,而局部静态变量只会初始化一次,因此该lammbda函数只会执行一次,因而具有 call_once 的语义。 123456789101112131415161718#include <iostream>void func() { static auto init = []() { std::c 2024-09-13 cpp
aligned_storage aligned_storage 通过union 将存储和访问分开,并将存储数据的内存作为整体进行对齐 123456789101112131415161718192021222324252627282930#include <vector>#include <iostream>#include <type_traits>template <typename 2024-09-13 cpp
string_view vs string & 标准 string_view 在C++17 才被支持 性能方面 https://stackoverflow.com/questions/40127965/how-exactly-is-stdstring-view-faster-than-const-stdstring string_view 在某些情况下可以避免内存分配,比如这个例子: 12345678void foo( std::string_ 2024-09-03 cpp
字节对齐 为什么要字节对齐 https://www.jb51.net/article/84553.htm 1. 不同硬件兼容性。一些平台对某些特定类型的数据只能从某些特定地址开始存取 2. 避免内存需要两次访问才能把一个数据完整的读写 alignas 关键字 实现结构体字节对齐 直接用在struct 关键字的后面加上 alignas(N), N 表示整个结构体中所有变量的最大对齐值, 如果N 小于各个变量 2024-08-12 cpp
numa jetson 是否支持 numa NUMA 技术的主要思想是将 CPU 进行分组,Node 即是分组的抽象,一个 Node 表示一个分组,一个分组可以由多个 CPU 组成。每个 Node 都有自己的本地资源,包括内存、IO 等。每个 Node 之间通过互联模块(QPI)进行通信,因此每个 Node 除了可以访问自己的本地内存之外,还可以访问远端 Node 的内存,只不过性能会差一些,一般用 dis 2024-08-09
成员指针 参考 https://learn.microsoft.com/zh-cn/cpp/cpp/pointers-to-members?view=msvc-170 总结 成员指针与普通指针的区别在于,其能够标志该类所有实例的成员变量或成员函数,而常规指针只能标识内存中的一个对象或只具有其地址 示例 1234567891011121314151617181920212223242526#include & 2024-08-08 cpp