我定义了一个 uint32_t 类型的数组(当然这个时候就已经出错了),然后需要把此数组的首地址传到一个函数的形参中,但是形参要求是 uint8_t 类型的,因此加了一个强制转换,但是在取到转换后的数据时,发现数据错乱了,后经多次排查,才发现是 uint32_t 强制转换为 uint_8 类型时出了问题,要谨记。 4、经过上述问题...
再构造好attentionMask之后就可以给Forward函数推理,拿到推理结果之后再使用tokenizer进行decode得到输出。
优势1: 比如我们在地址0x2000 0000定义了一个变量unit8_t a, 如果我们要将此变量的bit0清零,...
RISC-V不支持非对齐地址访问非常坑,隔壁Cortex-M0也不支持非对齐地址访问,代码中uint8_t*指针一旦强转uint16_t*或者uint32_t*,很容易引起HardFault。然而M3/M4就支持非对齐地址访问了,很多历史代码中会存在上面的强制地址转换,M3和M4上运行正常的代码移植到RISC-V以后非常容易踩到地址对齐的坑,代码规模比较大的时...
uint32_t: u:代表 unsigned 即无符号,即定义的变量不能为负数; int:代表类型为 int 整形; 32:代表四个字节,即为 int 类型; _t:代表用 typedef 定义的; 整体代表:用 typedef 定义的无符号 int 型宏定义; 2、由上述分析可得知,一个 uint32_t 类型的变量长度等于4个 uint8_t 类型的变量。理解这个后,...
uint32_t: u:代表 unsigned 即无符号,即定义的变量不能为负数; int:代表类型为 int 整形; 32:代表四个字节,即为 int 类型; _t:代表用 typedef 定义的; 整体代表:用 typedef 定义的无符号 int 型宏定义; 2、由上述分析可得知,一个 uint32_t 类型的变量长度等于4个 uint8_t 类型的变量。理解这个后,...
然后 https://github.com/ztxz16/fastllm/blob/master/src/models/chatglm.cpp#L633 这行代码对 ...