- 博客(22)
- 收藏
- 关注
原创 Bank conflict以及padding缓解
对比一下虽然能缓解bank conflict带来的效率损失,但是还是不如没有触发bank conflict的效率高。
2024-12-30 10:44:08
295
原创 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
原创 函数式编程简介
来看一下pycuda中的一个基本函数InclusiveScanKernel,它复制了reduce函数的功能。函数式编程指的是函数根据所提供的函数完成操作的,例如map和reduce函数。对于reduce他是执行二元运算,这里的二元指的是两个元素。
2024-08-19 15:58:44
152
原创 使用pycuda的gpuarray类
3. 使用ElementwiseKernel执行逐个元素的计算。#1.使用gpuarray在gpu中传输数据。#以惩罚为例子其他运算都是可以的。#2.进行基本的算数运算。
2024-08-19 15:28:17
339
原创 代码随想录(链表)
首先,虚拟头节点是为了使链表各个节点进行统一操作,通过了解本题的题意,没有对各个结点进行操作。其次,虚拟头节点是一定不在这个链表的环内(如果有环的话)这道题目使用虚拟头节点反而会使得问题复杂,造成未知的错误。使用虚拟头节点正好可以到待删除节点的前一个位置。对于链表的题目,考虑虚拟头节点,同时链表和数组很相似,双指针有时也是一个不错的选择。使用快慢指针法,一个每次走一步,一个一次走两步,如果两个指针相交则说明有环。看结点的next指针是否相等,进行判断时链表的长度也要注意。(1)判断链表结点是否相等的条件?
2024-03-30 10:27:03
356
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
原创 移除元素的python实现方法
移除元素关于数组是存储在连续内存空间上的相同类型数据的集合内存中的数据只能覆盖不能删除期望输出:新列表删除某个值新列表有效部分后不考虑方法双指针法可以把要删除的值称作沉默值定义两个指针一个指针为先行指针可以类比为工兵排地雷没有地雷告诉大部队指针向前推进有地雷给大部队材料去填补行进中的坑也可以将第一个指针当作检验第二个指针当作确定一指针检验是否是要删除的值不是的话二指针同步跟进如果是的话一指针向后继续二指针停留在
2022-10-17 21:33:53
317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人