cuda学习心得--1.一切从hello world开始

本文介绍了如何在Visual Studio 2010中安装CUDA 4.0,并创建第一个CUDA程序。通过简单的“Hello World”示例,展示了可以在CUDA环境中使用C++或C语言进行编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     cuda的版本已经到了4.0,而我却刚开始学这个。请在NVIDIA官方网下载Parallel Nsight 2.0,里面包含了cuda3.2版本和cuda4.0版本。可以选一个安装,或者全部安装。当然你也可以直接下cuda的版本,但还不下个好,省得直接再下NVIDIA GPU Computing SDK 4.0等。

     我选择的IDE是VS2010,安装好后会在新建工程里有NVIDIA,你就可以找CUDA,选择CUDA 4.0 Runtime,起个工程名字,就创建好了一个cuda的工程,然后直接编译,就得到一个默认的cuda程序。当然,这并不是我所要的hello world程序。这里得改改,代码如下:

1 #include <iostream>
2
3 int main()
4 {
5 std::cout << "hello world!";
6 return 0;
7 }
一个很简单的hello world程序出现了,很奇怪,怎么在写c++代码啊。当然你可以换成c的代码,代码如下:
1 #include <stdio.h>
2
3 int main()
4 {
5 printf("hello world!");
6 return 0;
7 }

 这告诉我们,使用cuda,你可以用c++,也可以用c来编写,这减少了我们学习一种新语言的成本。

对于cuda编写hello world 到此结束。

转载于:https://www.cnblogs.com/lopezycj/archive/2011/06/18/cuda_hello_world.html

-rwxr-xr-x. 1 root root 109M Jun 29 2020 /home/shared/cuda-10.1/NsightCompute-2019.3/host/linux-desktop-glibc_2_11_3-x64/libQt5WebEngineCore.so.5 -rwxr-xr-x. 1 root root 113M Jun 29 2020 /home/shared/cuda-10.1/nsightee_plugins/com.nvidia.cuda.repo-1.0.0-SNAPSHOT.zip -rwxr-xr-x. 1 root root 158M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libnvgraph.so.10.1.168 -rwxr-xr-x. 1 root root 132M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcufft.so.10.1.168 -rw-r--r--. 1 root root 180M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libnvgraph_static.a -rw-r--r--. 1 root root 137M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcufft_static.a -rw-r--r--. 1 root root 143M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcufft_static_nocallback.a -rwxr-xr-x. 1 root root 175M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcusolver.so.10.1.168 -rwxr-xr-x. 1 root root 117M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcusparse.so.10.1.168 -rw-r--r--. 1 root root 127M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcusparse_static.a -rwxr-xr-x. 1 root root 140M Sep 28 2019 /home/shared/cuda-8.0/lib64/libcufft.so.8.0.61 -rw-r--r--. 1 root root 124M Sep 28 2019 /home/shared/cuda-8.0/lib64/libcufft_static.a -rw-r--r--. 1 root root 131M Sep 28 2019 /home/shared/cuda-8.0/lib64/libnppi_static.a -rwxr-xr-x. 1 root root 104M Sep 28 2019 /home/shared/cuda-8.0/lib64/libnppi.so.8.0.61 -rwxr-xr-x. 1 root root 292M May 30 2019 /home/shared/cuda-9.0/lib64/libcudnn.so -rwxr-xr-x. 1 root root 292M May 30 2019 /home/shared/cuda-9.0/lib64/libcudnn.so.7 -rwxr-xr-x. 1 root root 292M May 30 2019 /home/shared/cuda-9.0/lib64/libcudnn.so.7.4.1 -rw-r--r--. 1 root root 303M May 30 2019 /home/shared/cuda-9.0/lib64/libcudnn_static.a -rwxr-xr-x. 1 root root 127M May 30 2019 /home/shared/cuda-9.0/lib64/libcufft.so.9.0.176 -rw-r--r--. 1 root root 131M May 30 2019 /home/shared/cuda-9.0/lib64/libcufft_static.a -rwxr-xr-x. 1 root root 113M May 30 2019 /home/shared/cuda-9.0/nsightee_plugins/com.nvidia.cuda.repo-1.0.0-SNAPSHOT.zip -rwxr-xr-x. 1 root root 117M Jul 27 2021 /home/shared/cuda-11.0/nsight-systems-2020.3.2/host-linux-x64/libQt5WebEngineCore.so.5 -rwxr-xr-x. 1 root root 114M Jul 27 2021 /home/shared/cuda-11.0/nsightee_plugins/com.nvidia.cuda.repo-1.0.0-SNAPSHOT.zip -rwxr-xr-x. 1 root root 154M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusparse.so.11.1.0.218 -rw-r--r--. 1 root root 159M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusolver_static.a -rw-r--r--. 1 root root 160M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusparse_static.a -rwxr-xr-x. 1 root root 161M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcublasLt.so.11.1.0.229 -rw-r--r--. 1 root root 217M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcublasLt_static.a -rw-r--r--. 1 root root 110M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcublas_static.a -rwxr-xr-x. 1 root root 157M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcufft.so.10.2.0.218 -rw-r--r--. 1 root root 153M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcufft_static.a -rw-r--r--. 1 root root 167M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcufft_static_nocallback.a -rwxr-xr-x. 1 root root 498M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusolver.so.10.5.0.218 -rwxr-xr-x. 1 root root 294M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusolverMg.so.10.5.0.218
06-27
<think>我们正在讨论CUDA相关的大型文件存储位置。根据用户上一次的问题,用户尝试使用`find$HOME-typef-size+100M`来查找大文件,但遇到了环境变量问题。现在用户明确想查找与CUDA相关的大型文件。CUDA相关的大型文件通常包括:1.CUDAToolkit安装文件(如.run安装包)2.CUDA示例程序(特别是编译后的可执行文件或大型数据集)3.深度学习框架中的预训练模型(如TensorFlow、PyTorch等框架存储在用户目录下的模型文件)4.CUDA相关的库文件(如libcudnn.so等)5.GPU加速应用程序生成的大型数据文件(如渲染结果、科学计算输出等)由于CUDAToolkit默认安装在系统目录(如`/usr/local/cuda`),而用户安装的应用程序和模型通常位于用户主目录,因此我们需要在多个位置查找。###解决方案####1.在系统CUDA安装目录查找```bashsudofind/usr/local/cuda-typef-size+100M-execls-lh{}\;2>/dev/null```####2.在用户主目录下查找常见的CUDA相关目录```bashfind~-typef\(-path"~/anaconda3/*"-o-path"~/miniconda3/*"-o-path"~/.cache/torch/*"-o-path"~/Projects/*"\)-size+100M-execls-lh{}\;2>/dev/null```####3.在整个系统中查找(需要管理员权限)```bashsudofind/-typef\(-iname"*cuda*"-o-iname"*cudnn*"-o-iname"*nvidia*"\)-size+100M-execls-lh{}\;2>/dev/null```####4.查找深度学习框架的缓存目录深度学习框架(如PyTorch、TensorFlow)会下载预训练模型和数据集,这些文件通常很大:```bash#PyTorch缓存find~/.cache/torch-typef-size+100M-execls-lh{}\;#TensorFlowHub缓存find~/tfhub_modules-typef-size+100M-execls-lh{}\;2>/dev/null```###注意事项-使用`sudo`时需谨慎,避免修改或删除系统关键文件。-如果知道具体文件名模式,可使用`-iname`选项进行过滤,例如:```bashfind/-typef-iname"*.cubin"-size+100M```-大型文件可能位于临时目录(如`/tmp`)或专用数据盘,需根据实际存储结构调整搜索路径。###优化建议-将常用搜索路径加入命令,避免全盘扫描耗时:```bashfind/usr/local/cuda~/anaconda3~/miniconda3~/.cache/torch/opt-typef-size+100M-execls-lh{}\;2>/dev/null```###相关问题1.如何清理CUDAToolkit的缓存文件以释放磁盘空间?2.深度学习模型文件通常存储在哪些默认目录?3.如何安全删除不再使用的CUDA版本?4.如何配置深度学习框架的缓存目录到其他磁盘分区?5.CUDA安装后如何验证其完整性?[^1]:CUDA运行时库提供了主机端执行的C函数,用于设备内存管理、数据传输等操作,详见CUDA参考手册。</think>### 查找 CUDA 相关大型文件的存储位置 在 Linux 系统中,CUDA 相关的大型文件通常存储在以下位置: #### 1. **CUDA Toolkit 安装目录**(核心位置) ```bash # 默认安装路径 find /usr/local/cuda -type f -size +100M -exec ls -lh {} \; 2>/dev/null # NVIDIA 官方驱动路径 find /usr/lib/nvidia -type f -size +100M -exec ls -lh {} \; 2>/dev/null ``` - **典型文件**: - CUDA 工具包(`cuda-toolkit-*.run` 安装文件,通常 1-3GB) - GPU 驱动(`NVIDIA-Linux-*.run`,500MB-1GB) - cuDNN 库文件(`libcudnn.so.*`,100-300MB) - CUDA 编译器(`nvcc` 及相关组件) #### 2. **深度学习框架缓存**(用户数据) ```bash # PyTorch 模型缓存 find ~/.cache/torch -type f -size +100M -exec ls -lh {} \; 2>/dev/null # TensorFlow Hub 模块 find ~/tfhub_modules -type f -size +100M -exec ls -lh {} \; 2>/dev/null # HuggingFace 模型 find ~/.cache/huggingface -type f -size +100M -exec ls -lh {} \; 2>/dev/null ``` - **常见大文件**: - 预训练模型权重(`.bin`/`.pth`,200MB-2GB) - 数据集缓存(`.arrow`/`.npz` 格式) - ONNX 模型文件 #### 3. **容器与虚拟环境** ```bash # Docker 容器 sudo find /var/lib/docker -type f -size +100M -exec ls -lh {} \; 2>/dev/null | grep -i cuda # Conda 环境 find ~/anaconda3 -type f -size +100M -exec ls -lh {} \; 2>/dev/null | grep -i cuda ``` - **典型位置**: - Docker 镜像层(包含 CUDA 基础镜像) - Conda 的 `pkgs/cudatoolkit-*` 目录 - Python 虚拟环境的 `site-packages/torch/lib` 目录 #### 4. **开发与编译产物** ```bash # 编译中间文件 find /tmp -type f -size +100M -exec ls -lh {} \; 2>/dev/null | grep -i cuda # 用户项目 find ~/Projects -type f \( -name "*.o" -o -name "*.so" \) -size +100M -exec ls -lh {} \; ``` - **常见文件**: - CUDA 编译对象文件(`.o`) - 共享库文件(`.so`) - PTX 汇编文件 ### 优化搜索命令建议 ```bash # 精确查找 CUDA 相关文件 sudo find / -type f \( -iname "*cuda*" -o -iname "*cudnn*" -o -iname "*nvidia*" \) -size +100M -exec ls -lh {} \; 2>/dev/null # 按文件类型过滤 find /usr/local/cuda -type f \( -name "*.so*" -o -name "*.a" \) -size +100M -exec du -h {} \; ``` ### 存储位置总结 | **文件类型** | **典型位置** | **大小范围** | |--------------------|----------------------------------|----------------| | CUDA Toolkit | `/usr/local/cuda` | 1-5 GB | | GPU 驱动程序 | `/usr/lib/nvidia` | 500MB-1.5GB | | cuDNN 库 | `/usr/lib/x86_64-linux-gnu` | 100-500MB | | PyTorch 模型 | `~/.cache/torch/hub/checkpoints` | 200MB-2GB | | TensorRT 引擎 | `~/TensorRT-*/data` | 100-500MB | | 编译中间文件 | `/tmp` 或项目目录 | 100MB-1GB | > **注意**:使用 `sudo` 搜索系统目录时需谨慎,避免误操作[^1]。CUDA 运行时库提供设备内存管理和数据传输功能,这些组件常位于系统库目录[^1]。 ### 相关问题 1. 如何安全清理 CUDA Toolkit 的缓存文件释放磁盘空间? 2. PyTorch/TensorFlow 的模型缓存目录是否可以迁移到其他磁盘? 3. CUDA 不同版本如何共存?如何管理多版本库文件? 4. 深度学习框架为何需要如此大的存储空间?主要存储哪些数据类型? 5. 如何验证 CUDA 相关大型文件(如 `.so` 库)的完整性? [^1]: CUDA 运行时库提供主机端执行的 C 函数,用于设备内存管理、数据传输等操作,详见 CUDA 参考手册。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值