cuda-4-计时 写CUDA,追求的就是加速比,想要得到准确的时间,计时函数就是必不可少 计时通常分为两种情况: 直接得到接口函数的时间,一般用于得到加速比;可以使用CPU计时函数和GPU计时函数 获得接口函数内核函数、内存拷贝函数等所耗时间,一般用于优化代码时;可以使用nvprof工具 CPU计时函数 在利用CPU计时函数时,要考虑的一个问题是:核函数的执行是异步执行的,所以必须加上核函数同步函数, 2024-04-28
cuda-3-错误 cuda CUDA运行时API大多支持返回错误代码,返回值类型:cudaError_t 运行时API成功执行,返回值为cudaSuccess 运行时API返回的执行状态值是枚举变量,对应官方文档查看错误代码可以知道错误来源 捕捉主机函数错误: CUDA代码在主机端(CPU)和设备端(GPU)的错误检测方法并不相同 在主机端(CPU)执行的CUDA代码主要包括对CUDA API函数的调 2024-04-27
Java GUI Java GUI——Java图形用户界面 Java GUI概述 早期,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI),在今天,一个应用软件没有良好的GUI是无法让用户接受的。Java语言提供了一套可以轻松构建GUI的工具 AWT 是 Java最早的界面库(java.awt:Abstract Windows ToolKit(抽象窗口工具包),需要调用本地系统方法来实现功能,属重 2024-04-26
Mamba pytorch复现 Mamba pytorch复现 代码思路是:MambaBlock -> ResidualBlock -> Mamba 其中MambaBlock就是最基础的单个Mamba块,如下图最左侧的部分: ResidualBlock就是Mamba块加上Normalize和残差连接的块,Mamba就是多个ResidualBlock叠加起来,再加上LLM最基本的Embedding等组成的 2024-04-24
Manba论文解读 Manba论文解读 自 2017 年被提出以来,Transformer 已经成为 AI 大模型的主流架构,但随着模型规模的扩展和需要处理的序列不断变长,Transformer 的局限性也逐渐凸显。一个很明显的缺陷是:Transformer 模型中自注意力机制的计算量会随着上下文长度的增加呈平方级增长,比如上下文增加 32 倍时,计算量可能会增长 1000 倍,计算效率非常低。 而就在最近 2024-04-23
概率论熵 概率论中的熵 我们直接给出定义: 信息量(Information Content) 信息量是指一个随机事件提供的信息量大小。一个事件发生的概率越小,它提供的信息量就越大。信息量的定义是概率对数的相反数,即: I(X)=−logb(p)I(X) = -log_b(p) I(X)=−logb(p) 其中 ppp 是该事件发生的概率 熵(Entropy) 熵是衡量随机变量不确定性的一个量 2024-04-20
cuda-2-程序框架 cuda 程序框架 12345678910111213头文件包含常量定义(或者宏定义)C++ 自定义函数和CUDA核函数的声明(原型)int main(void){ 分配主机与设备内存 初始化主机中的数据 将某些数据从主机复制到设备 调用核函数在设备中进行计算 将某些数据从设备复制到主机 释放主机与设备内存}C++自定义函数与CUDA核函数 2024-04-19
cuda-1(兼容性) cuda程序兼容性问题 先了解cuda程序编译的流程:先从C/C++代码编译为PTX,再从PTX编译为cudin代码 C/C++源码转化为PTX这一步骤与硬件无关 PTX指令转化为二进制cubin代码与具体的GPU架构有关 指定虚拟架构计算能力 C/C++源码编译为PTX时,可以指定虚拟架构的计算能力,用于确定代码中可以使用的CUDA功能 编译指令(指定虚拟架构计算能力): 1 2024-04-19
Java面向对象细碎知识 Java面向对象细碎知识 基础知识 引用变量: 引用类型变量(Reference Type Variable)是一种编程概念,主要存在于面向对象语言如Java、C#等中。引用类型变量并不直接存储对象的值,而是存储对该对象的引用或者说地址。这意味着它是一个指针或者句柄,指向内存中某个位置——存储了实际的对象数据 在Java中,除了基本数据类型(如int、char、double等)以外, 2024-04-13
JDBC简介 JDBC简介 DBC是什么? 由于数据库的厂商有很多,例如MySQL,Oracle等厂商,数据可能来自多个数据库或者我们需要切换数据库,DBC就是为了降低数据库与应用之间的耦合度而诞生的,下图是没有DBC的示意图: 下图为有DBC(JDBC)的示意图,JDBC API相对于JDBC Driver Manager来说为更高级的模块: JDBC的意义 ODBC(Open Data 2024-04-12