前言 统一内存是指只需要一次内存申请,就可以在任意的GPU或者CPU中访问这块内存中的数据,不用在手动的在设备与主机之间拷贝数据。 在了解统一内存之前,需要知道一些相关的概念。 页面错误 页面错误是计算机操作系统中的一种异常情况,它发生在程序试图访问虚拟内存中的某个页面(也称为页)时,而该页当前并未加载到物理内存中。 虚拟内存是一种使用硬盘空间模拟扩展内存的技术。在现代操作系统中,每个程序都有其虚拟地址空间,其中包含多个页面。这些页面通常是固定大小的。 当程序访问某个虚拟地址时,操作系统会检查该地址对应的页面是否已…

2023年8月8日 0条评论 2636点热度 0人点赞 大脸猫 阅读全文

CUDA GPU编程指南:内存的申请,释放与拷贝 前言 ​ 在CPU上运行的程序,会将数据存放在内存中,在C++中直接使用new delete 或者malloc free就可以管理内存的申请和释放。 ​ 在GPU上运行的程序,会将数据放入显存中,需要CUDA提供的API来管理内存,并且在显存中存放的数据,是不能被CPU直接访问的。 主机内存(host)和设备内存(device) ​ 主机内存指在CPU上运行的代码所使用的内存,正常C/C++代码中的使用的变量,无论是在堆还是栈上,使用的都是主机内存。 ​ 使用设备内…

2023年7月26日 2条评论 6974点热度 0人点赞 大脸猫 阅读全文

前言 这篇博文会介绍如何使用CUDA 在屏幕上打出Hello World! 直接上代码 #include <stdio.h> #include <cuda_runtime.h> __host__ void cpuSayHello() { printf("CPU: hello world!\n"); } __device__ int getThreadID() { return threadIdx.x; } __global__ void sayHello() { prin…

2023年7月26日 0条评论 2111点热度 1人点赞 大脸猫 阅读全文

准备工作 ​ 在使用CUDA前,应该在电脑上安装如下工具 CUDA Toolkit 英伟达为CUDA提供的工具包,下载地址:https://developer.nvidia.com/cuda-toolkit。 CMake 版本在3.11以上。 C/C++编译器,如果是在Windows系统上,推荐使用visual studio 20xx。 添加CUDA环境 ​ 有两种方法可以添加CUDA的支持,如果工程默认使用CUDA,那么可以使用这条命令: project(CUDA_PROJECT LANGUAGES CUDA C…

2023年7月24日 0条评论 6013点热度 1人点赞 大脸猫 阅读全文

前言 ​ QT除了提供GUI上的一些组件,还提供了一些很好用的非GUI的库,有时候为了方便(主要是习惯了使用QT)需要将QT的一些类再次封装,提供给一个非QT GUI的工程使用。 ​ 如果不需要使用到QT的事件循环相关的功能,那使用起来跟其他的库没有什么区别。 ​ 但是QT很多类都提供了信号和槽,并且QT在封装的时候有些类是默认使用了事件循环的功能的,那么这个时候使用就需要注意一些问题。 QCoreAppLication 和QApplication 的区别 ​ QApplication是QCoreApplicati…

2023年6月20日 0条评论 2210点热度 0人点赞 大脸猫 阅读全文

前言 ​ QT中的信号(signal)与槽(slot)是非常好用的机制,简单来说就是声明两个函数,声明时使用特殊宏将函数声明为信号函数和槽函数,之后再使用connect()函数,将两个函数绑定在一起。做好了这些工作之后,调用信号函数就会触发槽函数的调用,又根据绑定时所传递的参数不同,分为直接触发、延迟触发,跨线程触发等。 信号与槽函数的简单使用 ​ 不废话,直接上代码 class SignalSlotTest:public QObject{ Q_OBJECT public: SignalSlotTest(QObje…

2023年6月16日 0条评论 3926点热度 0人点赞 大脸猫 阅读全文

前言 ​ 本篇博文主要针对一下几个问题展开讨论: QT_TR_NOOP和QT_TRANSLATE_NOOP 以及QObject::tr() 的区别。 正常加载.qm文件,但无法正常翻译字符。 没有继承QObject的类如何使用国际化功能 框架结构解析 .ts .qm文件 ​ .ts文件本质上是一个xml文件,它保存了以下信息: 需要翻译的字符串 字符串的上下文标记(context),一般是类名,也可以自定义 字符串所在文件,以及在文件中所在的行号 字符串被翻译之后的文本 ​ 其中1、2很重要,这里先按下不表。 ​ …

2023年5月9日 0条评论 3467点热度 1人点赞 大脸猫 阅读全文

前言 ​ 之前有在QTCreator中介绍怎么使用QT Linguist Tools怎么使用,最近在一个使用CMake的项目中需要用到多语言的支持,折腾了一下,遇到了比较多的问题,所以在这里分享一下。 ​ 在阅读这篇文章之前,也许你需要一些CMake的基础知识: ​ 使用CMake创建一个最简单的工程 ​ 在CMake中引入QT库 在工程中添加LinguistTools模块 ​ 这篇文章中以QT5为例,其他的QT版本可以参考QT官网的文档,思路都是一样的。 ​ 在CMake中使用以下代码查找Qt5LinguistT…

2023年5月8日 0条评论 4328点热度 0人点赞 大脸猫 阅读全文

前言 最近拿到一个电路绘制的需求,这我可太擅长了(不是),毕竟转行码代码之前就是画电路图的啊。需求与常用的电路绘制软件一致,就是将Toolbar上的电子元器件拖拽到画图上,然后玩一玩连连看,最后再将电路数据按照固定的格式输出即可。 做这种需求使用QGraphicsView那一套简直太舒服了,当然可能也有大佬选择用QPainter手搓。。。QGraphicsView提供了图元的各种操作,移动,旋转,放大缩小,并且QGraphicsView 有着专门对付这种场景的缓存机制和绘图机制,即使图元达到几千个也可以做到操作时不…

2022年10月19日 2条评论 5953点热度 3人点赞 大脸猫 阅读全文

3月份的时候在某宝上买了一包玛格丽特的种子,就是俗称小雏菊,为了文明和谐,后记都称为玛格丽特。 之前也没养过花,也是突然起意,没有想着要记录过程,所以也没拍什么照片,三个月大概是从这样: 然后长到了这样: 你问我为什么只剩4颗了? 这事儿得从头说起,前两个星期吧,花苗已经长挺大了,基本都长出真叶了,几十颗小苗在一个花盆里急着太惨了。于是我花费重金(10块)在海鲜市场上买了亿点点土,给它们置办了新房子,大概有六七个小花盆吧。 前两天我看着小花苗从搬家的颓势中振作起来,精神抖擞,想着正是长身体的时候,也得给它们实施施肥…

2022年6月24日 1条评论 8806点热度 4人点赞 大脸猫 阅读全文
123458