自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Stream和Event

这是单流和多流在计算资源不充足时的表现,可以看出效率相仿。这是单流和多流在计算资源充足时的表现。

2024-12-30 11:19:10 250

原创 Bank conflict以及padding缓解

对比一下虽然能缓解bank conflict带来的效率损失,但是还是不如没有触发bank conflict的效率高。

2024-12-30 10:44:08 295

原创 Shared_memory sm静态和动态的kernel函数

【代码】Shared_memory sm静态和动态的kernel函数。

2024-12-30 10:33:15 112

原创 获取GPU的硬件信息

在utils.hpp下定义一个LOG函数以便进行信息的打印。在主函数main.cpp。

2024-12-22 12:14:34 228

原创 cuda编译的Makefile配置

Xcompiler: 这个选项用于传递额外的选项给主机编译器(即编译C++代码的编译器),在NVCC编译CUDA代码时,它可能会调用主机编译器来编译一些非CUDA的C++代码。如果你直接写 $@:.cpp.mk=.cpp.o 而不加括号,Makefile解释器会认为你想要替换变量名为 @:.cpp.mk=.cpp.o 的变量,这显然不是你想要的结果。这个库提供了CUDA运行时API。11.在Makefile中,.PHONY 是一个特殊的目标,用于声明某些目标是“伪目标”,而不是实际的文件名。

2024-12-22 11:42:15 398

原创 cuda中的error handler

在cuda中cuda.runtime api中会返回一个cudaError_t类型,且编译器没有提示错误的能力,有时会把可恢复的错误设置为cudaSuccess导致结果看似没有出错Eg:blocksize分配错误等。后者一般指的是blocksize,shared_memory 配置错误。前者一般指的是kernel函数中出现的错误,例如数组越界。因此需要有Error handle.

2024-12-21 18:01:47 226

原创 cuda矩阵乘法踩坑记录

第一步需要编写在cpu上进行矩阵乘法,我定义了m,n以及p.前两个参与计算,p用来保存计算结果。为了比较cpu和gpu运行速度的差异,常常使用矩阵乘法来比较,同时也是gpu上常运行的程序。blocksize用于定义block的大小,配合width定义grid.重要的是,定义size时不要忘记乘上数据类型所占的字节数!第四步需要定义一些辅助函数以便计时,比较运算结果。第二步编写在gpu上运行矩阵乘法的代码,width用来设置各个矩阵所占的空间,

2024-12-21 17:24:19 207

原创 Java中的lambda表达式10分钟复习

// 有代码块的形式。无参数:() -> System.out.println("Hello World");parameter -> expression body //不带代码块的表达形式。带有代码块:(int a, int b) -> { return a + b;2. 带一个参数的 Lambda 表达式。3. 带多个参数的 Lambda 表达式。多参数:(a, b) -> a + b。1. 无参数的 Lambda 表达式。单参数:n -> n * n。

2024-12-19 21:45:41 193

原创 (已解决)The user does not have permission to access NVIDIA GPU Performance Counters

这个是让服务器下的所有用户都能访问gpu,需要指定用户参考上方参考文档。需要创建一个包含特定配置选项的文件,并将其放置在。

2024-12-15 09:36:37 749

原创 __syncthreads()函数在Conway中的优化

【代码】__syncthreads()函数在Conway中的优化。

2024-08-21 15:11:13 148

原创 内核函数pycuda以及Conway生命游戏源码

这个是自己实现了ElementwiseKernel的功能。

2024-08-20 14:57:35 179

原创 函数式编程简介

来看一下pycuda中的一个基本函数InclusiveScanKernel,它复制了reduce函数的功能。函数式编程指的是函数根据所提供的函数完成操作的,例如map和reduce函数。对于reduce他是执行二元运算,这里的二元指的是两个元素。

2024-08-19 15:58:44 152

原创 Mandelbrot集的gpu实现版本

【代码】Mandelbrot集的gpu实现版本。

2024-08-19 15:30:05 400

原创 使用pycuda的gpuarray类

3. 使用ElementwiseKernel执行逐个元素的计算。#1.使用gpuarray在gpu中传输数据。#以惩罚为例子其他运算都是可以的。#2.进行基本的算数运算。

2024-08-19 15:28:17 339

原创 Cuda学习(python)

Mandelbrot集的python实现

2024-08-18 15:45:04 372 1

原创 代码随想录(链表)

首先,虚拟头节点是为了使链表各个节点进行统一操作,通过了解本题的题意,没有对各个结点进行操作。其次,虚拟头节点是一定不在这个链表的环内(如果有环的话)这道题目使用虚拟头节点反而会使得问题复杂,造成未知的错误。使用虚拟头节点正好可以到待删除节点的前一个位置。对于链表的题目,考虑虚拟头节点,同时链表和数组很相似,双指针有时也是一个不错的选择。使用快慢指针法,一个每次走一步,一个一次走两步,如果两个指针相交则说明有环。看结点的next指针是否相等,进行判断时链表的长度也要注意。(1)判断链表结点是否相等的条件?

2024-03-30 10:27:03 356 1

原创 刷题总结(1)

2023.11.08

2023-11-08 21:49:28 120 1

原创 详解:西农ojaw.比压牌(c语言实现)

如果b字符串的长度小于4,按照题中的例子来看,当strlen(b)= 1时,只要在字符串a中找到一张大于b的牌就可以了,当strlen(b)= 2时,我们要在字符串a中只要找到2个两张相同的比b大的牌就可以了,至于其他的字符就不重要了,当strlen(b)= 3和strlen(b)= 4 的情况同前面两种。创建完哈希表之后就很简单了,采取双指针法,用两个指针i,j进行搜索,i代表起始位置,j搜素是否此元素存在,当hash[j] == 0 && j - i == 5退出循环,返回YES。

2023-10-26 23:01:08 258 1

原创 69.x的平方根(c++实现)

二分查找和牛顿迭代法的思想

2023-03-04 02:10:05 385

原创 34. 在排序数组中查找元素的第一个和最后一个位置

二分查找的应用

2023-03-02 18:03:19 172 1

原创 移除元素的python实现方法

移除元素关于数组是存储在连续内存空间上的相同类型数据的集合内存中的数据只能覆盖不能删除期望输出:新列表删除某个值新列表有效部分后不考虑方法双指针法可以把要删除的值称作沉默值定义两个指针一个指针为先行指针可以类比为工兵排地雷没有地雷告诉大部队指针向前推进有地雷给大部队材料去填补行进中的坑也可以将第一个指针当作检验第二个指针当作确定一指针检验是否是要删除的值不是的话二指针同步跟进如果是的话一指针向后继续二指针停留在

2022-10-17 21:33:53 317

原创 快速排序python实现

快速排序python实现代码

2022-10-14 10:17:57 183

空空如也

空空如也

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

TA关注的人

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