为学
开始一个新的学习计划,涵盖:
主题 | 学习内容 |
---|---|
CUDA | Professional CUDA C Programming/NVIDIA CUDA初级教程视频(周斌) |
C++ | C++Primer / The Cherno CPP |
Unity Compute Shader | Udemy Learn to Write Unity Compute Shaders |
Linear Algebra | MIT 18.06 Prof.Gilbert Strang Linear Algebra |
本系列博客用以记录学习过程中的知识要点!!!
为学
—彭端淑
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
2023/4/28
〇、CUDA
1.使用nvfrof时,报错
解决方法:
将路径
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\extras\CUPTI\lib64
下的文件
cupti64_2024.1.1.dll
复制到路径
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin
下即可。
2.nvprof的使用
Shift+鼠标右键->在此处打开PowerShell窗口(S)
在控制台中输入
nvprof E:\C_CPP_CUDA\CUDA\x64\Release\CUDATest.exe
2.未解决问题
在PowerShell中使用nvcc命令编译
PS E:\C_CPP_CUDA\CUDA\CUDA> nvcc sumArrayOnHost.cu -o sum
sumArrayOnHost.cu
nvcc error : 'cudafe++' died with status 0xC0000005 (ACCESS_VIOLATION)
网上找的解决方法都不行呢,有知道如何解决的望告知呢;
因可在Visual Studio中直接通过调试器直接进行编译,所以命令行编译不行就不行吧。
3.#include <sys/time.h>
该文件应为linux系统下的头文件,在windows中需改写;
4.CHECK方法中的call显示未定义
严重性 代码 说明 项目 文件 行 禁止显示状态 详细信息
错误(活动)
E0020 未定义标识符 "call" CUDA E:\C_CPP_CUDA\CUDA\CUDA\sumArrayOnHost.cu 10
//后面这个反斜杠必须有啊啊啊
#define CHECK(call){ \
const cudaError_t error = call; \
if (error != cudaSuccess) { \
printf("Error: %s:%d ", __FILE__, __LINE__); \
printf("code:%d, reason: %s\n", error, cudaGetErrorString(error)); \
exit(1); \
} \
}
一、CPP
1.break语句会跳出整个循环,而非内层循环;
2.C++的编译
编译包含外部代码的项目,
外部include文件添加
项目->(鼠标右键)属性->C/C++->Addtional Include Directories->"include files path"
外部lib添加
项目->(鼠标右键)属性->链接器->Addtional Library Directories->"lib path"
- 编译出错时,应首先聚焦第一个错误;
- 查看CPP文件的汇编代码
在需要查看汇编代码的地方打断点,当代码运行至该位置时,鼠标右键->转到反汇编