自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 资源 (1)
  • 收藏
  • 关注

原创 深度学习入门:多层感知机实现异或门

最近又开始看深度学习的内容了,好久不用忘得差不多了,先从最简单的感知机入手了,这里记录下用2层感知机实现异或门。

2023-04-26 00:08:05 1646 1

原创 C++实现简单的固定大小内存分配器

c++实现一个简单的固定大小内存分配器

2023-04-16 16:06:13 336

原创 C++多线程实战: 实现简单的生产者-消费者模式

c++实现生产者/消费者模式

2023-04-06 23:22:27 690

原创 c++多线程编程 Trap 2: std::promise多次set_value引发的灾难

c++多线程编程Trap 2: std::promise::set_value在一个线程中多次调用

2023-04-02 14:18:37 694

原创 C++多线程Trap 1: 没有预见的Abort

std::thread使用中容易忽略的小陷阱

2023-04-02 13:39:06 230

原创 Bug分析: cuda程序cudaGetDeviceProperties()返回unknown error

cuda程序cudaGetDeviceProperties()返回unknown error

2022-08-29 23:26:07 1203 1

原创 C++11 Bug分析:std::thread用法不当引发的灾难

std::thread用法不当引发的灾难:camera应用程序闪退

2022-08-23 23:23:46 1560

原创 Linux OpenCV编程Bug: Cross Initialization

Linux c++ OpenCV开发Bug

2022-06-12 11:22:59 328 1

原创 CUDA C编程10:核函数可达到的带宽

系列文章目录文章目录系列文章目录前言一、理论知识二、案例分享2.1 朴素转置2.2 展开转置2.3 对角转置2.4 通过瘦块方法来增加并行性2.5 完整代码:总结参考资料前言忙里偷闲,继续学习CUDA C编程,今天开始学习核函数的带宽的相关知识点,提高性能。一、理论知识分析核函数性能时,要注意以下两点:(1)内存延迟:完成一次内存请求的时间;(2)内存带宽:SM访问设备内存的速度,以每单位时间内的字节数来度量。之前了解的改进核函数性能的方法有两种:(1)通过最大化并行线程束

2022-04-19 01:46:26 1245

原创 CUDA C编程: win10 vs2017开启与关闭一级缓存

系列文章目录文章目录系列文章目录前言开启与关闭一级缓存总结参考资料前言这里跟大家分享下win10 vs2017中如何启用与关闭一级缓存开启与关闭一级缓存在win10 vs2017项目属性页面中添加如下编译命令可以开启或关闭GPU设备一级缓存://开启一级缓存-Xptxas -dlcm=ca//关闭一级缓存-Xptxas -dlcm=cg这里有一点要特别注意,上述编译命令是大小写敏感的,否则win10 vs2017会报编译错误。总结以上是本人实际经验,如有错误,

2022-04-16 00:37:34 477

原创 CUDA C编程10:内存访问模式之全局内存读取

系列文章目录文章目录系列文章目录前言一、内存访问模式之全局内存读取1. 内存访问模式基础知识1.1 对齐和合并访问二、全局内存读取示例1.代码实现2.NVIDIA Visual Profiler运行结果分析总结参考资料前言之前在复习现代C++的新特性,没有继续CUDA C编程的学习,今天开始继续之前的学习,这里跟大家分享内存访问模式中全局内存读取的知识。一、内存访问模式之全局内存读取1. 内存访问模式基础知识我们所编写的GPU程序容易受到内存带宽的限制,因此,最大限度利用全局内存

2022-04-08 00:40:44 3063

原创 CUDA C编程9:内存管理之统一虚拟寻址、统一内存寻址

系列文章目录文章目录系列文章目录前言一、统一虚拟寻址1. 统一虚拟寻址技术2. 示例程序二、统一内存寻址1.统一内存寻址技术2.示例程序总结参考资料前言这里开始介绍内存管理中的统一虚拟寻址和统一内存寻址技术的相关知识点。一、统一虚拟寻址1. 统一虚拟寻址技术只有计算力在2.0及以上版本的设备支持一种特殊的寻址方式,即为统一虚拟寻址(UVA)。有了UVA,主机内存和设备内存共享统一虚拟地址空间,说白了,和之前介绍的零拷贝内存技术的功能相同,不需要cudaMemcpycudaMemc

2022-03-11 01:13:16 3339

原创 CUDA C编程8:内存管理之零拷贝内存

系列文章目录文章目录系列文章目录前言一、零拷贝内存相关知识点二、零拷贝内存示例1. 代码实现2. 运行结果总结参考资料前言这里跟大家分享内存管理第三篇:零拷贝内存。一、零拷贝内存相关知识点之前学习的CUDA知识中,主机不能直接访问设备变量,需要通过cudaMemcpycudaMemcpycudaMemcpy函数实现主机与设备间数据拷贝,当然设备也不能直接访问主机变量。这里介绍的零拷贝内存则是个例外,主机和设备都可以访问零拷贝内存。注意,零拷贝内存相当于从全局内存中分出的一块独立

2022-03-10 01:15:03 2703

原创 CUDA C编程7: 内存管理之固定内存

系列文章目录文章目录系列文章目录前言一、固定内存相关知识点二、固定内存示例总结参考资料前言这里开始介绍CUDA C编程内存管理中的固定内存相关知识。一、固定内存相关知识点系统分配的主机内存默认是可分页的,GPU不能在可分页主机内存上安全地访问数据,这是因为主机操作系统在物理位置上移动数据时,GPU无法控制。当从可分页主机内存传输数据到设备内存时,CUDA驱动程序首先分配临时页面锁定的或固定的主机内存,将主机源数据复制到固定内存中,然后从固定内存传输数据给设备内存。使用如下函数可

2022-03-08 23:56:57 1239

原创 CUDA C编程6 - 内存管理之内存分配、传输与释放

系列文章目录文章目录系列文章目录前言一、内存管理相关概念1. 内存分配和释放2. 内存传输二、内存分配、传输与释放示例总结参考资料前言这里开始跟大家分享CUDA内存管理相关的知识。一、内存管理相关概念这里主要介绍如何使用CUDA函数来显示管理内存和数据移动。CUDA提供了在主机端准备设备内存的函数,并且显示的向设备传输数据和从设备中获取数据。1. 内存分配和释放在主机上使用如下函数分配全局内存:cudaErrortcudaMalloc(void∗∗ devPtr,

2022-03-08 00:38:22 1441

原创 CUDA C编程5 - CUDA内存模型

系列文章目录文章目录系列文章目录前言一、CUDA内存模型1. 寄存器2. 本地内存3. 共享内存4. 常量内存5. 纹理内存6. 全局内存7. GPU缓存二、静态全局内存示例总结参考资料附录前言最近在温习CUDA C 全局内存的知识,这里对关键知识点进行总结并分享给大家。较差的全局内存访问方式是造成内存负载效率大幅下降的原因之一。这里主要介绍以下几点内容:剖析核函数与全局内存的联系及其对性能的影响;介绍全局内存访问模式介绍如何通过核函数高效的利用全局内存一、CUDA内存

2022-03-06 22:31:23 590

原创 CUDA C编程4 - 动态并行理解

系列文章目录文章目录系列文章目录前言一、动态并行概念二、嵌套执行三、动态并行的限制条件四、嵌套规约4.1 基本方法(线程同步及线程块同步)4.2 加速方法(去除线程同步以及线程块同步)4.3 进一步加速方法(待完善。。。)五、运行结果总结参考资料附录:完整代码前言之前学习了CUDA C编程中动态并行技术, 这里进行总结,以加深理解,并希望能够对大家有所帮助。一、动态并行概念之前接触的CUDA C设备函数的调用都是在CPU端进行的,即设备函数的执行在CPU的控制下。自然而然,我们就会

2022-03-01 01:29:26 1289 1

原创 CUDA-C编译错误 -动态并行程序

文章目录前言问题描述及分析动态并行实例程序动态并行程序运行结果总结参考资料前言今天试着在windows 10 VS2017上编译并运行CUDA-C中动态并行技术的简单程序,想看看该技术的运行效率,但是编译就出错了,这里记录下解决过程。问题描述及分析动态并行程序的HelloWorld示例编写好后,编译程序时,出现如下错误:从错误提示中可知,设备函数需要单独的编译模式,结合参考书中介绍的编译命令,需要将 -rdc=true, 即强制生成可重定位的设备代码,这是动态并行的一个要求。基于这个知识,在编译

2022-02-24 23:46:27 743

原创 CUDA C编程3 - 并行性衡量指标

系列文章目录文章目录系列文章目录前言一. CUDA C并行性衡量指标介绍二、案例介绍1. 案例说明2. 案例实现3. 结果分析总结参考资料前言CUDA编程,就是利用GPU设备的并行计算能力实现程序的高速执行。CUDA内核函数关于网格(Grid)和模块(Block)大小的最优设置才能保证CPU设备的这种并行计算能力得到充分应用。这里介绍并行性衡量指标,可以衡量最优性能的网格和模块大小设置。一. CUDA C并行性衡量指标介绍占用率(nvprof 中的achieved occupanc

2022-02-17 01:34:45 1564

原创 CUDA C编程1 - 入门介绍

系列文章目录文章目录系列文章目录前言1. CUDA C程序组成2. CUDA C编程范式总结参考资料前言今天开始又一次开始学习CUDA C编程,今后也会陆续更新学习笔记以及代码,希望加深记忆的同时,能够跟大家分享学习所得。1. CUDA C程序组成CUDA C程序主要包括两部分:(1)主机代码(2)设备代码CUDA程序保存为.cu文件,CUDA平台使用编译器nvcc编译器来编译设备代码,运行在GPU上;使用C语言编译器来编译主机代码,运行在CPU上。2. CUDA C编程范式

2022-01-13 00:17:45 791

原创 图像处理:摩尔纹

文章目录1. 什么是摩尔纹?2. 怎样消除摩尔纹?总结1. 什么是摩尔纹?什么是摩尔纹?当我们对着电脑屏幕拍照时,会发现规则的彩色条纹,那就是我们常说的摩尔纹,它是由于采样不足,离散图像数据混淆产生的。刚才说的在空域上的混淆产生的摩尔纹;时域上也会混淆产生摩尔纹,比如拍照时快门速度不够【车轮效应】2. 怎样消除摩尔纹?空域上的摩尔纹可以通过如下两种方法来消除:(1)增加采样频率;(2)平滑滤波详细说明请参考【Link】总结本人之前有用手机拍摄电脑上的发票,发现拍摄出现的图像有彩色条纹

2021-12-09 00:45:57 4294

原创 Linux编程知识点2:进程

文章目录前言1. 进程控制块2. 三个特殊的进程3. 进程的状态总结参考文献前言今天跟大家分享Linux中进程的相关知识。1. 进程控制块进程控制块(Process Control Block, PCB)是对并发进程进行控制和管理的数据结构,在Linux内核中由task_struct结构体定义的。PCB中存放了描述进程和控制进程运行的所有信息,部分信息如下:(1)进程标识符(2)进程当前状态(3)进程的程序和数据地址(4)进程资源清单(5)进程优先级(6)CPU现场保护区(7)用于

2021-11-30 23:55:08 1140

原创 Linux编程知识点1:静态库与动态库

文章目录前言1. 静态库与动态库2. Linux下动态库和静态库存储总结参考文献前言因为项目需要,最近在学习Linux的相关知识,这里总结一个比较重要的知识点:静态库与动态库。1. 静态库与动态库Linux支持两种类型的库,即静态库与动态库。这两个库的主要区别在于库中代码被载入的时刻不同:(1)静态库:在编译链接过程就载入静态库的代码并将代码直接放置到可执行程序中;(2)动态库:在编译链接过程仅仅引用动态库(个人理解,就是记录动态库的地址),在程序运行时将动态库代码加载到内存中。动态库的优

2021-11-29 22:08:46 370

原创 OpenCV CUDA编程Issue: GpuMat::upload()第一次调用速度很慢问题

文章目录Issue描述Issue分析实验结果总结Issue描述之前一直在学习OpenCV CUDA编程,遇到一问题:第一次调用GpuMat::upload()函数时,速度出奇的慢,大约要2-4分钟才能继续运行,后面调用GpuMat::upload()函数则没有这个问题。Issue分析在网上查找原因,说的最多的就是第一次调用upload()函数需要初始化CUDA,所以第一次花费比较长时间也是合理的。还有另外的说法,即CMake Opencv CUDA库时,没有配置正确GPU设备的计算能力值,即配置

2021-11-16 13:55:55 3560

原创 VS2017 OpenCV CUDA库学习1:图像加法操作

文章目录前言1. OpenCV CUDA库使用框架2. C++ 调用OpenCV CUDA库实现图像加法操作3. 执行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构VS2017

2021-11-15 22:19:21 2716

原创 Linux编程:Shell编程基础知识

文章目录前言1. 编写第一个Shell程序2. 如何运行Shell程序3. Shell命令的退出状态4. 复合命令总结前言这里记录Shell编程的学习笔记,为巩固基础并分享给大家。1. 编写第一个Shell程序编写first.sh程序文件:第一行指定了Shell解释器类型,"#!"后面紧跟的字符串为解释器路径,在执行时首先启动解释器程序,然后运行后面的Shell命令,这里以及后面都是用bash解释器。2. 如何运行Shell程序运行Shell程序的方法有3种:(1)赋予程序文件可执行权

2021-11-14 23:12:54 1524 2

原创 VS2017 CUDA编程学习实例3:CUDA实现直方图统计

文章目录前言1. C++ CUDA实现直方图统计3. 执行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构VS2017 CUDA编程学习7:线程同步-共享内存VS2017 CU

2021-11-14 16:14:05 2155 2

原创 VS2017 CUDA编程学习实例2:CUDA实现秩排序

文章目录前言1. C++ CUDA实现秩排序3. 执行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构VS2017 CUDA编程学习7:线程同步-共享内存VS2017 CUDA

2021-11-14 15:04:16 2867

原创 VS2017 CUDA编程学习12:CUDA流

文章目录前言1. CUDA流的理解2. C++ 实现CUDA流3. 执行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构VS2017 CUDA编程学习7:线程同步-共享内存VS

2021-11-12 21:49:56 3008

原创 VS2017 CUDA编程学习11:CUDA性能测量

文章目录前言1. CUDA事件API2. C++ 实现CUDA事件例子3. CUDA事件例子的执行结果4. NVIDIA Visual Profiler工具总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6

2021-11-11 20:18:57 1292

原创 VS2017 CUDA编程学习实例1:CUDA实现向量点乘

文章目录前言1. 向量点乘2. C++ CUDA实现向量点乘3. 执行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构VS2017 CUDA编程学习7:线程同步-共享内存VS2

2021-11-10 13:40:47 1873

原创 VS2017 CUDA编程学习10:纹理内存

文章目录前言1. 纹理内存的理解2. C++ CUDA实现常量内存使用3. 执行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构VS2017 CUDA编程学习7:线程同步-共享内

2021-11-03 00:03:19 1034 1

原创 VS2017卡在登录界面问题

文章目录前言分析总结参考链接前言之前一直在用VS2017来进行C++开发工作,今天打开软件,提示需要登录才能继续使用,但是在登录时,发现一直卡在登录界面,无法继续,如下图:分析这里感觉是微软服务器连接不上导致的,所以在网上搜索了一些解决方案,但是没有几个是管用的,偶然看到可以通过修改网络链接的DNS方法来实现vs2017的登录,本人试验后确实管用,这里分享给大家。如何设置网络链接的DNS,这里就不细说了,跟大家分享一个链接:dhttps://zhidao.baidu.com/questio

2021-11-02 22:55:05 2212 1

原创 VS2017 CUDA编程学习9:常量内存

文章目录前言1. 常量内存的理解2. C++ CUDA实现常量内存使用3. 执行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构VS2017 CUDA编程学习7:线程同步-共享内

2021-10-28 23:30:00 489

原创 VS2017 CUDA编程学习8:线程同步-原子操作

文章目录前言1. 原子操作的理解2. C++ CUDA实现原子操作3. 执行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构VS2017 CUDA编程学习7:线程同步-共享内存

2021-10-21 00:06:14 720

原创 C++ Boost_1_54 库make_shared<>() 参数个数限制问题

文章目录前言1. win7 build error分析2. 解决方法前言因为项目需要兼容winxp, win7和win10,所以在win7上使用一些先进的C++技术需要依赖boost_1_54版本库,这就会造成在win10(依赖boost_1_63版本库)上build项目没问题,但是转到win7上就会build出错,这次的问题就是出在这里。1. win7 build error分析因为项目保密性,无法粘贴错误信息,build错误信息就是说boost_1_54版本库中make_shared<

2021-10-19 00:00:11 310

原创 VS2017 CUDA编程学习7:线程同步-共享内存

文章目录前言1. CUDA线程同步-共享内存理解2. C++ CUDA代码实现3. 运行结果总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程VS2017 CUDA编程学习6: GPU存储器架构前言1. CUDA线程同步-共享内存

2021-10-18 23:42:08 911

原创 Single Sensor Imaging Methods and Applications for Digital Cameras 在线链接分享

文章目录前言1.总结前言https://last.hit.bme.hu/download/firtha/video/Sensors/Rastislav_Lukac_Single-Sensor_Imaging_Methods_and_Applications_for_Digital_Cameras__2009.pdf1.总结

2021-10-18 22:15:56 212

原创 VS2017 CUDA编程学习6: GPU存储器架构

文章目录前言1. GPU存储器架构总结学习资料VS2017 CUDA编程学习1:CUDA编程两变量加法运算VS2017 CUDA编程学习2:在GPU上执行线程VS2017 CUDA编程学习3:CUDA获取设备上属性信息VS2017 CUDA编程学习4:CUDA并行处理初探 - 向量加法实现VS2017 CUDA编程学习5:CUDA并行执行-线程前言今天又复习了下GPU存储器架构,这里做下笔记以此来加深印象并分享给大家,希望能对大家有帮助。1. GPU存储器架构GPU存储器空间按照层次结

2021-10-14 23:38:16 358

原创 C++ OpenCV实践:电容器件计数

文章目录前言1. OpenCV主要步骤2. OpenCV C++实现3. 运行结果总结前言今天在51Halcon中看到一个有意思的帖子,是查找图片中电容器件的个数,觉得挺有意思,就用OpenCV实现了一下,这里分享给大家。帖子链接:https://www.51halcon.com/thread-4670-1-5.html1. OpenCV主要步骤原图(引用帖子链接图片):主要实现步骤:读取原图并转为灰度图提取ROI区域,主要是去除图片左边缘以及右下角水印的影响OTSU阈值化执行2

2021-10-14 13:56:42 664

四个SSH框架实战项目源码加笔记

该文件包括了四个SSH框架的项目源码以及项目笔记,对于学习SSH框架的人士很有帮助,也为需要资源的人士提供一些帮助。

2015-01-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除