- 博客(34)
- 资源 (3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C/C++代码规范(一)——文件结构、排版、命名规则
代码规范是每个程序员倍加关注的问题。本文是在学习林锐博士的《高质量C/C++编程指南》一书中,摘录、总结的笔记。文章目录1 文件结构1.1 版权和版本的声明1.2 头文件的结构1.4 头文件的作用1.5 目录结构2 程序的版式2.1 空行2.2 代码行2.3 代码行内的空格2.4 对齐2.5 长行拆分2.6 修饰符的位置2.7 注释3 命名规则3.1 共性规则3.2 简单的Windows应用程序...
2020-04-27 15:37:34
6506
2
原创 CUDA程序优化方法
使用共享内存减少全局内存读取次数减少全局内存的重复数据的重复访问,此处大有学问,需要设计我们的线程组织模式,最大可能利用共享内存,可参考矩阵乘法优化问题;把全局内存绑定为纹理;纹理的存取速度要远高于全局内存减少bank conflict, 让不同线程读取连续内存。Tesla 的每个 SM 拥有 16KB 共享存储器,用于同一个线程块内的线程间通信。为了使一个 half-warp 内的线程能够在一个内核周期中并行访问,共享存储器被组织成 16 个 bank,每个 bank 拥有 32bi..
2021-04-14 00:39:06
894
原创 通过CUDA deviceQuery分析NVIDIA显卡性能
参考:http://blog.sina.com.cn/s/blog_471e6c930102wlp5.html在这里插入图片描述序号名称值解释1Detected 1 CUDA Capable device(s)1检测到1个可用的NVIDIA显卡设备2Device 0: "GeForce 930M"GeForce 930M当前显卡型号为" GeForce 930M "3CUDA Driver Versio
2021-04-07 14:55:07
694
1
原创 CUDA atomic原子操作
两篇文章总结的很赞。搬运https://www.cnblogs.com/biglucky/p/4283476.htmlhttps://blog.csdn.net/q583956932/article/details/78826987
2021-04-06 13:31:55
298
原创 cuSparse中密集块稀疏(BSR)矩阵之间的矩阵乘法
cuSparse中密集块稀疏(BSR)矩阵之间的矩阵乘法此处只是搬运学习原作者的github地址:https://github.com/ceruleangu/Block-Sparse-Benchmark注意VS下需要链接cusparse.lib库#include <cusparse.h>#include <cuda.h>#include <cuda_runtime.h>#include <iostream>#include <rando
2021-03-30 09:07:04
685
原创 CUDA官方手册
CUDA官方手册做的还是很不错的。里边包括了一系列运行时手册、调优手册、nvvp以及Nsight的调试手册等。默认位置:网页版:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\doc\html\index.html(浏览器打开配合谷歌翻译)PDF:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\doc\pdf(英文实在不好的,桌面环境可以配合“知云文献翻译软件”
2021-03-29 23:45:38
1788
1
转载 CUDA 复杂问题 + 细节问题 详细解答
转载至 中国科学技术大学一位大佬的文章。纯干货,学习了!CUDA 复杂问题 + 细节问题 详细解答https://blog.csdn.net/tiao_god/article/details/107181883文章中有错误:blockDim.x:Block的x方向的维度,这里是5,即每行5个线程。blockDim.y:Block的y方向的维度,这里是3,即每列3个线程。blockIdx.x:Block在x方向的位置,图中放大的Block是1,即为第2个。blockIdx.y:Block在y向
2021-03-25 23:22:01
195
原创 VS下给CUDA添加链接库----glut64.lib为例
方法:(1)添加lib的库路径工程==>属性==>配置属性==>链接器==>常规==>附加库目录==>编辑==>添加lib文件存放目录。(2)只添加lib工程==>属性==>配置属性==>链接器==>常规==>附加依赖项==>编辑==>添加lib文件存放目录。都可以达到相同的目的...
2021-03-25 19:21:27
746
原创 VS查看预编译文件--输出在本地,可在VS中查看
预编译后的文件长什么样子。将预处理到文件勾选为是,然后就会在项目的debug目录下输出预编译文件(文件后缀为.i)。其实这个预编译输出有弊端:就是不能输出多个文件的联合预编译结果,这个与我们自然联想到的obj其实有一定的区别。obj是经过链接的目标文件,而预编译结果都是非链接的结果。实测在VS中如果既需要联合编译,又需要输出编译预处理结果会失败,提示找不到对应的目标文件,但是只要关闭掉输出预编译结果又恢复正常。感觉像是VS的bug。...
2021-03-19 17:07:30
1988
原创 Centos7文件类型
文件类型分为以下7种d:文件夹-:普通文件l:链接(类似Windows的快捷方式)b:块设备文件(例如硬盘、光驱等)p:管道文件c:字符设备文件(例如猫等串口设备)s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)在/dev下使用ll由于存储的多是设备相关文件,除了管道文件都可以看到。brw-rw---- 1 root cdrom 11, 0 Nov 10 14:11 sr0lrwxrwxrwx 1 root root
2021-01-23 10:36:05
1361
原创 Visual studio模板方法声明与实现分离编译报错:链接错误
问题描述:以下是我的部分代码,采用的是将模板方法getArray声明和实现分离的方式://_public.h#ifndef _PUBLIC_H#define _PUBLIC_H 1//在堆上申请数组的模板方法template<typename T>T** getArray(int row, int col);#endif ////_public.cpp#include "_public.h"template <typename T>T** getArray
2021-01-09 18:13:54
456
原创 EndNote X7集成到office word2016(原有EndNote选项卡,却突然消失)
EndedNote真的掉链子,关键时刻突然崩了。简单来说就是在我word 的导航栏中看不到EndNote那个选项卡。我的EndNote 用的X7版本(我是一个喜欢稳定工具包的守旧男人),较新的版本可能遇到这个问题的概率小很多,至少我之前用X9没有遇到过。这个问题已经不是第一次发生,所以感觉还是有必要做个总结。找到一个靠谱的方法,特此记录:原帖有图文https://blog.csdn.net/weixin_37792714/article/details/79205858:核心步骤:1、以管理员身
2020-10-25 00:10:59
542
原创 markdown表格
表格Markdown 表格Markdown 制作表格使用 |来分隔不同的单元格,使用 -来分隔表头和其他行。语法格式如下:| 表头 | 表头 || ---- | ---- || 单元格 | 单元格 || 单元格 | 单元格 |效果如下:表头表头单元格单元格单元格单元格对齐方式可以设置表格的对齐方式:-:设置内容和标题栏居右对齐。:-设置内容和标题栏居左对齐。:-: 设置内容和标题栏居中对齐。实例如下:| 左对齐 | 右对
2020-10-24 21:58:44
3387
原创 C语言按位清0和置1操作(位运算符合移位运算符组合)
文章目录位(bit)运算符移位运算符位运算符和移位运算符结合——清0和置1位(bit)运算符运算符类型解释&双目运算符按位与,相同位的两个数字都为1,则为1;若有一个不为1,则为0。|双目运算符按位或,相同位只要一个为1即为1~单目运算符按位取非,0,1互换,包括符号位说明:任何数跟0做位与,结果为0,任何数跟1做位与,保持原值下表模拟C = A & B,即将A与B的每一位都执行按位与操作将结果赋值给C数字2进制16进制
2020-10-23 23:42:29
14220
原创 vi的三种模式切换及基本命令
vi 三种模式vi的三种模式为命令模式,编辑模式,末(尾)行模式vimplus可以参考官网文档:https://github.com/chxuan/vimplus/blob/master/help.md普通vi三种模式下的常用命令如下:命令模式命令模式(默认),按下esc即可,可以执行移动光标,删除等操作光标移动字符级h 左j 下k上l 右等价于四个方向键单词级w 移动到下个单词首字母b 上个单词首字母e下个单词结尾行级0 行首$ 行尾段落级{ 上} 下屏幕级
2020-10-23 21:38:50
1631
转载 github知名企业开源项目索引
亚马逊:https://github.com/amzn饿了么 https://github.com/ElemeFEhttp://lrd.ele.me/腾讯 https://github.com/Tencenthttps://github.com/AlloyTeamhttps://github.com/weui百度https://github.com/ecomfehttps://github.com/BaiduQAhttps://github.com/baidufe携程https://git
2020-09-29 10:01:53
345
转载 面试题:new/delete与malloc/free的区别与联系?
1.malloc/free为C的标准库函数,函数原型为:void* malloc(size_t size)//参数代表字节个数void free(void* pointer)//参数代表内存地址new、delete则为C++的操作运算符,它调用的分别为赋值运算符重载operator new()和operator delete();2.在使用上,malloc/free如下:用malloc分别开辟了1个和4个整型大小的空间和并free释放它们;void func(){ //开辟一个空间 i
2020-08-27 00:37:08
1306
转载 c++ 中 operator总结
1、operator作类的转换函数类可以使用构造函数将其他类型转化为此类的对象,比如my_class a = my_class(int i);将int型转化为my_class类的一个对象。同样,也可以使用类的转换函数将类的对象转化为其他的类型。类的转换函数应当满足以下的几个条件:转换函数必须是类方法转换函数不能指定返回类型转换函数不能有参数下面是一个类转化函数的例子#include <iostream>using namespace std;class my_c
2020-08-26 23:57:38
2365
转载 C++面试题:虚函数(virtual)可以是内联函数(inline)吗?
原文链接:https://github.com/huihut/interview答案:虚函数可以是内联函数,内联是可以修饰虚函数的,但是当虚函数表现多态性的时候不能内联。理由如下:内联是在发生在编译期间,编译器会自主选择内联,而虚函数的多态性在运行期,编译器无法知道运行期调用哪个代码,因此虚函数表现为多态性时(运行期)不可以内联。 inline virtual唯一可以内联的时候是:编译器知道所调用的对象是哪个类(如 Base::who()),这只有在编译器具有实际对象而不是对象的指针或引用时才会发生。
2020-08-26 22:39:03
6844
2
原创 C/C++ 中const && static && this指针
文章目录conststaticthis指针const作用:修饰变量,变量不可改变:const int var1即常量,更推荐使用const而不是以#define定义常量,因为const可以指定常量类型,而define仅仅是符号替换。修饰指针,分为两种情况:(1) const 在*前,const int * p1,int const * p2两者等价,都是说不能通过* p来修改所指向的变量的值。(2) const在*后,int * const p, p一经指定,就不能指向其他变量。这个和C++的
2020-08-26 18:21:18
171
原创 C语言 了解extern关键字
最重要的结论:extern在项目中不是必须的。如果在一个项目中遇到有extern声明的变量或者函数,知道其作用即可。C++中已经完全见不到extern关键字了,有更好的方式。extern主要有两个用途:extern 修饰全局变量,改变全局变量的生命周期或者作用范围让被 extern “C” 修饰的变量和函数是按照 C 语言方式编译和链接的目前用的最多的是后一种。1.extern 修饰全局变量或函数被 extern 限定的函数或变量是 extern 类型的,且被修饰的变量一定是全局的,局部变
2020-08-26 17:53:15
310
剑指 Offer 32 - II. 从上到下打印二叉树 II (BFS解题套路总结)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof原题描述:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]解
2020-08-26 10:03:36
141
原创 剑指 Offer14- I.剪绳子(基于贪心思想)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/jian-sheng-zi-lcof原题描述:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解
2020-08-25 13:38:31
117
原创 剑指offer04.二维数组中的查找 && 记一次因为unsigned int引发的边界判断错误
这是一道简单题,需要的思想也很简单。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof本题与主站 240 题相同:https://leetcode-cn.com/problems/search-a-2d-matrix-ii/原题描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组
2020-08-24 12:29:55
214
1
原创 matlab批量读取指定类型的文件+通配符匹配(*tag.txt) + 频率统计 + 作图
文章目录批量读取指定类型的文件(以*.txt为例)利用通配符匹配以某个标识结尾或者开头的文件频率统计作图批量读取指定类型的文件(以*.txt为例)dirPath= 'C:\Users\ZHM\Desktop\801\final\*.txt';fileList = dir(dirPath);dir列出文件夹内容语法dirdir namelisting = dir(name)说明dir 列出当前文件夹中的文件和文件夹。dir name 列出与 name 匹配的文件和文件夹。如果 na
2020-08-16 21:43:50
7518
原创 C/C++代码规范(二)——表达式、常量、函数设计
代码规范是每个程序员倍加关注的问题。C语言编码与注释规范,懂不懂编码规范笔试时能一眼被看出来,有良好的编码习惯笔试时也会增色不少,知道你有过工作经验或者参与过大型项目。本文是在学习林锐博士的《高质量C/C++编程指南》一书中,摘录、总结的笔记。本文是第二部分,第一部分博客地址:C/C++代码规范(一)——文件结构、排版、命名规则文章目录4 表达式和基本语句4.1 运算符的优先级4.2 复合表达式4.3 if 语句4.3.1 布尔变量与零值比较4.3.2 整型变量与零值比较4.3.3 浮点变量与零值比较4.
2020-08-16 16:32:40
666
原创 网易笔试:给出n个物品,每个物品都有自己的价值,每个物品只有一件,这些物品需要分给两个人,要求分配完之后,两个人的物品价值相同。分配完成之后,丢弃剩下的物品,求最少要丢弃多少物品。
题目描述给出n个物品,每个物品都有自己的价值,每个物品只有一件,这些物品需要分给两个人,要求分配完之后,两个人的物品价值相同。分配完成之后,会丢弃剩下的物品,求最少要丢弃多少物品。输入输入第一行为总的测试数据个数,第二行为物品个数n,第三行为n个物品的价值。输出最少要丢弃多少物品的价值总和。示例:输入:1530 60 5 15 30输出:20 (丢弃5和15,把60分配给第一个人,2个30分配给第二个人。)思路:dfs回溯C++实现#include <vector>
2020-08-16 16:31:06
2712
1
原创 字节笔试题: 根据前序和中序遍历,求二叉树的叶子节点数
题目描述:二叉树的叶子节点数给定一颗二叉树,二叉树每个节点都有唯一正整数代表节点,在遍历时,使用节点的整数值作为标记。输入:二叉树的节点个数,前序和中序遍历结果,分别是第一行、第二行和第三行;输出:二叉树叶子节点的个数输入描述:第一行:输入二叉树节点个数N, 0 < N < 30000第二行:前序遍历第三含:中序遍历示例:输入:31 3 43 1 4输出:2求解思路:根据二叉树的前序和中序遍历,构建二叉树;最后求出二叉树叶子节点的个数。代码:#include
2020-08-16 16:28:49
1519
原创 数据结构 Hash表(哈希表)--附C语言实现源码
在顺序表查找时,如果要查找某个关键字的记录,就是从表头开始,挨个的比较记录a[i]与key的值是=还是≠, 直到有相等才算是查找成功,返回i。 有序表查找时,我们可以利用a[i]与key的<或>来折半查找,直到相等时,查找成功返回i。最终的目的都是为了查找那个i,其实也就是相对应的下标,再通过顺序存储位置计算的方法,LOC(ai)=LOC(a1)+(i-1) * c,得到最终...
2020-04-27 12:06:29
2127
原创 Linux下c/c++调试——gdb
文章目录一、gdb简介二、gdb的安装三、调试前的准备四、常用gdb调试命令在Linux下c/c++开发,gdb是必须掌握的技能。一、gdb简介GDB(GNU symbolic debugger),是Unix以及类Unix下最重要的代码调试工具。gcc/g++编译器可以发现程序代码的语法错误,但不能发现程序的业务逻辑错误,调试程序是软件开发的重要技能。二、gdb的安装本人使用的操作系统...
2020-04-14 11:25:48
363
原创 Bash命令和C函数重名,如何使用man查看C函数手册?
今天在学习C目录文件操作时候,遇到一个问题:我想查看mkdir函数说明,结果使用man mkdir,得到的是Bash命令mkdir的结果。之前没有特别注意,如果库函数和Bash命令重名时候怎么使用man查看C库函数帮助? 我注意到,有些博客给出的答案是使用: man 2 read 或者是man 3 read其实我们使用man man命令就能看到完整的说明...
2020-02-17 11:21:33
425
原创 SecureCRT连接阿里云ECS服务器,经常掉线的解决方案
1、首先修改服务器端SSH连接vi/etc/ssh/sshd_config2、修改以下代码#ClientAliveInterval 0#ClientAliveCountMax 3为ClientAliveInterval 60ClientAliveCountMax 100ClientAliveIntervalserver每隔60秒给客户端发送一次保活信息包给客...
2020-02-10 18:14:29
673
colorTheme.zip
2019-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人