- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 系统性能优化——绑核
绑核正如其名,将线程/进程绑定在一个或多个CPU核心。该技术可以使进程或线程在特定的处理器上运行,而被操作系统调度到其他处理器上。这里有两层含义。
2024-10-22 16:26:52 686
原创 C++ vector迭代器失效
参考博文: https://blog.csdn.net/m0_61982936/article/details/132548446此前一直没有注意到vector的失效情景,但仔细思考下发现有很多失效的坑。首先需要明确的是vector的扩容:有两个参数size:指的是vector当前元素多少capacity:指的是vector的容量,也即max_size。如果size >= capacity时就会发生扩容,拷贝元素并且释放旧空间。通常采用1.5倍扩容或者2倍扩容。
2024-10-15 23:41:46 299
原创 Oneapi应用——卷积实践
One API 是 Intel 推出的一个软件开发工具套件,旨在简化和加速跨多个硬件加速器的高性能计算和数据处理应用程序的开发。该套件支持包括 CPU、GPU、FPGA 等多种硬件平台。One API 提供了支持 Intel 处理器、图形处理器(GPU)和可编程逻辑器件(FPGA)的 API,使开发者能够更轻松地利用各种硬件加速器的性能。One API 的目标是提供一个统一的编程模型,使开发人员能够以相似的方式开发和优化应用程序,而无需为不同的硬件平台编写不同的代码。
2023-12-02 00:09:03 325
原创 Oneapi应用——矩阵相乘实践
One API 是 Intel 推出的一个软件开发工具套件,旨在简化和加速跨多个硬件加速器的高性能计算和数据处理应用程序的开发。该套件支持包括 CPU、GPU、FPGA 等多种硬件平台。One API 提供了支持 Intel 处理器、图形处理器(GPU)和可编程逻辑器件(FPGA)的 API,使开发者能够更轻松地利用各种硬件加速器的性能。One API 的目标是提供一个统一的编程模型,使开发人员能够以相似的方式开发和优化应用程序,而无需为不同的硬件平台编写不同的代码。
2023-12-01 23:54:35 151
原创 Oneapi应用——并行排序实践
One API 是 Intel 推出的一个软件开发工具套件,旨在简化和加速跨多个硬件加速器的高性能计算和数据处理应用程序的开发。该套件支持包括 CPU、GPU、FPGA 等多种硬件平台。One API 提供了支持 Intel 处理器、图形处理器(GPU)和可编程逻辑器件(FPGA)的 API,使开发者能够更轻松地利用各种硬件加速器的性能。One API 的目标是提供一个统一的编程模型,使开发人员能够以相似的方式开发和优化应用程序,而无需为不同的硬件平台编写不同的代码。
2023-12-01 23:45:38 224
原创 解决头文件互相包含的情况
尽量少在.h文件中进行include,除非是实在避免不了(有一些继承等关系在)。我们如果只是使用它的一些方法就只需要在.cpp文件中include即可。比如说A需要include B,B需要include C,C还需要include A,这样形成环状必然会导致编译器报错。在这里声明我们要用A,而A的头文件我们反正在其他地方已经include了。这样的话是可以通过编译的。这是用来解决重复包含的问题,和上文提到的循环包含有所不同。在环的最后一处进行声明而不是include。在头文件开始时可以使用。
2023-08-15 14:49:36 895
原创 c++在头文件中定义变量引起的重复定义
以前有很多博客讲过,大家可以把全局变量定义在某个头文件中,使用的时候直接include就好。但是我此前并未实践过,如今第一次实践就发现不对劲。
2023-08-15 14:47:09 1425
原创 Cmakelist写法
这里的可执行文件名称同本节“生成可执行文件”中的设置,存储库路径的变量则是在find_library中的var。,这样cmake运行生成的文件就只会呆在build目录下(这其实是默认在哪执行cmake就将所运行生成的文件放在哪里,好像是可以自己重新定义生成位置,不过我懒得找了)不过在我们平时写代码时似乎没有太大的影响,观察了很多代码,大家习惯将自己写的头文件使用带引号形式,在使用标准库时使用尖括号形式。name指定待查找的库名称,可以使用全称如libxxx.a,也可以不带前缀和后缀,直接是xxx。
2023-07-21 15:39:16 513
原创 本地上传文件至远程仓库的指定文件夹下
参考了众多博文,还是没有发现比较靠谱的,统一给出的解决方法都是先git clone整个仓库,然后进仓库里面修改,最后提交整个仓库。如果采用强行推送,只能推到仓库顶层,自己要进行merge。感觉不太方便。...
2022-05-15 15:20:30 242
原创 图像处理与压缩
先挖个坑,记录一些知识,最后再抽空整理一下图像高频信号与低频根据研究表明,人眼对高频信号更加敏感,这个地方的高频指的是变化抖动大,比如说明暗分界线,而不是指亮度高。因此我们在对图像进行处理时要注意对高频信号的处理,尽可能保护细节。但是图片的格式是以RGB(为例)的像素块组成,要想转换成频率相关,只能使用傅里叶变换或者拉普拉斯变换。(傅里叶变换是轻量级的拉普拉斯变换)图像的压缩方法JPEG的压缩方法...
2022-01-26 11:42:01 2508
原创 浅谈NP、P、NPC、NP-hard问题
首先强烈推荐阅读此篇文章,例子恰如其分,思路清晰明了。http://www.matrix67.com/blog/archives/105 http://blog.csdn.net/dongwq/article/details/4305435P问题:可以在多项式时间内解决的问题。但是需要注意此处的多项式时间是针对输入规模而言,对比例子如下:例子1: n个数字的排序,此时输入是n个数字,时间复杂度是O(nlogn),可以在多项式时间内解决例子2:0-1背包问题,输入是n个物品的价值和重量、背包最大承受
2021-12-27 23:49:11 1665
原创 操作系统算法总结(作业分配和页面替换)
OS算法总结1. 分区分配操作(为作业分配寻找空白块)文章目录OS算法总结1. 分区分配操作(为作业分配寻找空白块)1.1 首次适应算法1.2 下次适应算法1.3 最佳适应算法1.4 最坏适应算法1.5 快速适应算法1.6 伙伴系统2. 页面置换策略2.1 最优置换2.2 先进先出2.3 改进版先进先出 second chance2.4 改进版second chance- clock(NRU)2.5 最近最少使用(LRU)2.6 老化算法(AGING)1.1 首次适应算法首次适应算法(First
2021-05-05 17:19:27 469
原创 PV操作详解(附详细例题解析和总结)
PV操作详解写在前面:本文主要讲解PV操作与信息量结合,实现进程的同步与互斥文章目录PV操作详解1. PV操作定义2. 信号量的应用3. 经典问题分析3.1 课上例题3.2 课下习题分析4. 补充1. PV操作定义信号量是一类特殊的变量,程序对其访问都是原子 操作,且只允许对它进行P(信号变量)和V(信号变量) 操作。• 二元信号量:取值仅为“0”或“1”,主要用作实现互斥;• 一般信号量:初值为可用物理资源的总数,用于进程间的协作同步问题一个信号量可能被初始化为一个非负整数.semWa
2021-05-04 17:06:01 77966 17
原创 页目录项自映射分析与解题
自映射分析与解题自映射的分析原理图 (未产生自映射的版本) (产生了自映射的版本)注意: 自映射的基本条件为:页表项的数目(页表块/页表项大小)== 物理块个数(物理内存/物理块大小)。同时还得保证页表连续存储,如果采用非自映射的多级页表机制,那么不必要求页表存储连续,在一定程度上比自映射更具有灵活性。自映射的解题解析:页表基址: 4M对齐这要求很合理
2021-05-04 10:45:56 1103
BUAA-P3课下(实现课下要求6条指令+J指令)
2020-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人