0, about cuda computing
https://developer.nvidia.com/zh-cn/cuda-zone
Official introduction:
CUDA® is a parallel computing platform and programming model developed by NVIDIA for general-purpose computing on graphics processing units (GPUs). With CUDA, developers can take advantage of the powerful performance of GPUs to dramatically accelerate computing applications.
In a GPU-accelerated application, the serial portion of the workload runs on the CPU, which is optimized for single-thread performance, while the compute-intensive portion of the application runs in parallel on thousands of GPU cores. When using CUDA, developers program in mainstream languages such as C, C++, Fortran, Python, and MATLAB, and express parallelism in the form of a few basic keywords by extending the program.
NVIDIA's CUDA Toolkit provides everything needed to develop GPU-accelerated applications. The CUDA toolkit includes several GPU-accelerated libraries, a compiler, development tools, and the CUDA runtime environment.
At present, there are no other programming calculations to choose from.
The most widely used and most supported by the community is cuda.
1, cuda learning video
NVIDIA CUDA elementary tutorial video, this video has a high volume of playback.
https://www.bilibili.com/video/BV1kx411m7Fk/
NVIDIA CUDA Elementary Tutorial Video
GPU parallel computing and CUDA programming, this is also possible, the language speed is slow.
https://www.bilibili.com/video/BV15Y4y1F7tE
GPU Parallel Computing and CUDA Programming
2, pdf data:
https://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide.pdf
https://docs.nvidia.com/cuda/pdf/CUDA_C_Best_Practices_Guide.pdf
Zhongwen Documentation 1.1 Version
https://www.nvidia.cn/docs/IO/51635/NVIDIA_CUDA_Programming_Guide_1.1_chs.pdf
https://www.nvidia.cn/docs/IO/57399/NVIDIA_CUDA_Programming_Guide_1_1-Ch.pdf
3, c++11 documentation
Learning materials:
Spend 38 yuan to find a C++ programmer as a teacher, and guarantee to master C++
https://www.bilibili.com/video/BV1o8411x7K3/
Spend 38 yuan to find a C++ programmer as a teacher, and guarantee to master C++
C++ advanced from basics to architecture (C++11, lock-free queue, new features, STL, distributed)
https://www.bilibili.com/video/BV16g4y1J7tH/
C++ advanced from basics to architecture (C++11, lock-free queue, new features, STL, distributed)
4, Project learning lluma.cpp also has cuda part
This project is developed using c++. Very efficient and fast.
https://github.com/ggerganov/llama.cpp
5, summary
cuda programming is a good way to get started and learn c++.
Can do a lot of basic functional computing development.
It is more valuable than CRUD for applications. Have a deeper understanding of the relevant technical directions.
You don't need a computer with high configuration, as long as you have a cuda graphics card, preferably an intel computer.
Just buy a second-hand computer, just a desktop, and then find a cheap entry-level cuda graphics card.
In case of giving up, the cost of investment is not too high.
As for why I chose C++ to learn instead of python.
Because it is not an algorithm, but there are always some scenarios that require higher efficiency.
At this time, you need to use C++ directly. There is value in learning this well.
Give support to algorithm classmates.