- 博客(61)
- 收藏
- 关注
原创 一直报错找不到 cuGetErrorString和cuGetErrorName
也找到了这两个函数定义的地方。就是链接的时候老是说未定义。除了加了cudart外,需要添加cuda库。就这破玩意儿卡我3天。一、三天,整整三天,一直找不到什么原因。最后是因为缺少库文件:cuda。最后链接成功,输出结果。
2023-08-29 12:33:11
486
1
原创 tensorRT安装
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 这个什么也不会输出。服务器直接下载,用wget下,但是我没有成功,下了30多k的啥东西我也不知道,所以我是直接本地下载,然后scp传上去的。因为是最新的,所以版本信息在cudnn_version.h里面,不在cudnn.h里。第一行: 将 cuDNN 库的头文件复制到 CUDA 的包含目录下。第二行:将 cuDNN 库的动态链接库复制到 CUDA 的库目录下。
2023-08-24 20:01:00
1009
原创 cuda编程day001
每个卡都传递其显卡索引对应的那份数据,给相邻的下一个显卡做累加,递所使用的线路是相邻显卡路径,不存在等待堆积,执行一次耗时: 1/N。①. 数据的传输量为4 x D x 2,我们经过了1次Scatter Reduce传输了4D数据量,经过了1次Allgather传输了4D数据量。S = 单条线路的传输速率,设为1GB/s,也就是任何显卡传数据到GPU0,或者传输出去都是最大1GB/s。S = 单条线路的传输速率,设为1GB/s,也就是任何显卡传数据到GPU0,或者传输出去都是最大1GB/s。
2023-08-22 21:23:18
617
原创 代码随想录算法训练营第五十九天
就是横向求面积,递增单调栈,当找到比栈顶大的元素,即是栈顶右边第一个比他大的,然后站内第一个就是左边第一个比他大的,横向求解对应面积即可。第一题、下一个更大元素II。
2023-07-07 11:40:27
184
原创 代码随想录算法训练营第五十天
0表示不操作,1表示第一次持有/买入或者延续前面的状态,2表示第一次不持有/卖出或者持续前面的状态,3表示第二次持有,4表示第二次不持有。买卖股票的最佳时机III。买卖股票的最佳时机IV。
2023-06-28 09:36:20
176
原创 代码随想录算法训练营第四十九天
今日不持有的收益=比较昨天不持有和昨天持有今天不持有的收益谁更大。今日持有的收益=比较昨天持有和昨天不持有今天持有收益谁更大;第二题、买卖股票的最佳时机II。第一题、买卖股票的最佳时机。0表示持有,1表示不持有。最后返回最终不持有的收益。
2023-06-27 11:00:59
172
原创 代码随想录算法训练营第四十八天—动态规划009
与上题逻辑相同,就是把环拆分考虑。考虑头节点和考虑尾节点两种情况,然后逻辑和第一个一样,求得每个逻辑的最大值,然后取最大值即可。如果颠倒了顺序,那么返回的就是偷窃和不偷窃的收益的顺序,与题目要求不符,会导致错误的结果。返回的是当前节点不偷窃和偷窃时的最大收益,所以返回值应该是。第三题、打家劫舍III。第二题、打家劫舍II。
2023-06-26 11:21:16
164
原创 代码随想录算法训练营第四十五天—动态规划007
也可以看作是完全背包问题,n是背包,然后j*j当做物品,用j*j去装n,求最小的个数。本题求得是最小个数,既不是排列,也不是组合,所以先遍历哪一个都是可以的。如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。抽象完全背包问题,然后弄清for循环顺序。
2023-06-24 12:03:35
56
原创 代码随想录算法训练营第四十三天—动态规划005
抽象为01背包问题,分成重量差不多的两堆石头,一碰之后,剩下的就是最小的重量了。给定背包容量,装满背包最多有多少个物品,分0和1两个物品,所以是二维动态数组。
2023-06-21 11:23:33
35
原创 代码随想录算法训练营第四十二天—动态规划004
容量为j的背包,所背的物品价值可以最大为dp[j],那么dp[0]就应该是0,因为背包容量为0所背的物品的最大价值就是0;dp数组在推导的时候一定是取价值最大的数,如果题目给的价值都是正整数那么非0下标都初始化为0就可以了。在一维dp数组中,dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j]那么我假设物品价值都是大于0的,所以dp数组初始化的时候,都初始为0就可以了。先遍历物品,再遍历背包。3.初始化(理解其含义,再初始化)总结一句话:全部初始为0。
2023-06-20 14:32:02
60
原创 代码随想录算法训练营第四十一天—动态规划003
思路:通过列举前3个数的二叉搜索树的数目。可以得到规律,然后就能定义dp[i]。学会归纳总结规律,然后再合理初始化。
2023-06-19 12:07:59
83
原创 代码随想录算法训练营第三十九天—动态规划002
整体思路:到达当前位置的路径等于左边的路径+上边的路径,所以,定义dp数组记录每个位置的总路径,规划初始值,第一行和第一列全为1,因为题目定义的只能往右或者往下走一格,所以第一行和第一列的每个位置都只有一个路径。然后剩余的位置的路径就等于dp[i-1][j] + dp[i][j-1]。初始化的时候把障碍的或者障碍在第一行或者第一列,就把他和他后面的值初始为0。dp求和的时候跳过他,因为他的dp位置为0,所以不影响他后一个位置或者下面一个位置的路径数求和,因为加0嘛~
2023-06-17 11:18:18
137
原创 代码随想录算法训练营第三十八天—动态规划001
动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。动态规划中每一个状态一定是由上一个状态推导出来的。1、确定dp数组以及其下标的含义。5、举例推导dp数组 验证结果。3、dp数组的初始化。
2023-06-16 11:31:07
92
原创 代码随想录算法训练营第三十七天
注意:两个维度的时候,不要同时兼顾,选一个维度优化好,再优化另一个维度,在前一个维度的基础上调整就可以。整体思路:用012三种状态表示各个节点的状态,然后由左右子节点判断其父节点的状态进行递归。贪心总结:没有固定套路,只有一条指导思想——局部最优可推得全局最优就是贪心。
2023-06-15 11:05:29
23
原创 代码随想录算法训练营第三十六天
思路:左边界排序,不断用后一个区间的左边界判断他比前一个区间的右边界大不,大的话就不重叠,就给他加入进来,小于等于的话就是重叠,就取他的右边界和前一个区间的右边界最大的一个作为新区间的右边界。思路精华:按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数了。左边界排序我们就是直接求重叠的区间,count为记录重叠区间数。
2023-06-14 11:21:56
22
原创 代码随想录算法训练营第三十一天
1、虚拟头部一个平坡,即前面多一个与第一个元素相等的元素,体现在代码上就是preDiff=0,没有摆动时不更新;如果有平坡就要跳过中间平坡的情况,那么就是在if条件判断的时候有 preDiff <=0 和 preDiff >=0 的等于号的情况。贪心算法的基本思路:分解问题为若干子问题---->找出贪心策略---->求解每个子问题的最优解---->将局部最优堆叠为全局最优。count记录最大子序列和,当count为负数就抛弃前面的数,赋值为0,从新开始记录。思路:大饼干满足大胃口的小孩,达到最优分配。
2023-06-09 11:27:10
20
原创 代码随想录算法训练营第二十九天
整体思路:用result收集个数大于一的path。加个判断条件(path.size()>1),然后path收集元素过程中注意树枝去重和树层去重。used记录改成使用过的元素,如果使用过就跳过。整体思路:全排列的子集长度等于原数组长度,所以长度相等的时候收集结果集。然后注意和之前题目的区别,没有用startIndex记录起始位置,因为每轮都是从0开始收集的。
2023-06-07 11:05:58
28
原创 代码随想录算法训练营第二十五天
用数组存储对应的字符串,然后根据下标对应的字母,比字典方便。,然后回溯的方法就是模版,根据情况,不用剪枝。主要是理解集合不要重复元素,然后起始位置和剪枝逻辑弄清楚就挺好理解了。
2023-06-03 14:58:52
18
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人