我抛砖引玉一下。 OpenMP is a popular library for writing code that runs on multi-core CPU. Example: https://curc.readthedocs.io/en/latest/programming/OpenMP-C.html CUDA is for writing code that runs on GPU. C Example: https://developer.nvidia.com/blog/easy-introduction-cuda-c-and-c/ C++ Example: https://developer.nvidia.com/blog/even-easier-introduction-cuda/
我抛砖引玉一下。 OpenMP is a popular library for writing code that runs on multi-core CPU. Example: https://curc.readthedocs.io/en/latest/programming/OpenMP-C.html CUDA is for writing code that runs on GPU. C Example: https://developer.nvidia.com/blog/easy-introduction-cuda-c-and-c/ C++ Example: https://developer.nvidia.com/blog/even-easier-introduction-cuda/
最这样一个程序,如果用30个cores的CPU来运算和用30个cores的GPU来算, 编程上有啥不同呢?
谢谢!
GPU和CPU之间的通讯的速度是怎么保证的?
OpenMP is a popular library for writing code that runs on multi-core CPU. Example: https://curc.readthedocs.io/en/latest/programming/OpenMP-C.html
CUDA is for writing code that runs on GPU. C Example: https://developer.nvidia.com/blog/easy-introduction-cuda-c-and-c/ C++ Example: https://developer.nvidia.com/blog/even-easier-introduction-cuda/
多谢!
总算弄明白这个问题了。
一直不知道。以为只要并行化原程序,然后提交给超级计算机,就可以了。
这么说来,如果准备在CPU和GPU同时运行这个程序,那么就要改成两个版本。
要是,有谁能发明一个只能工具,自动能把cpu的程序改成gpu的程序,那就太方便了。
为啥举这个例子。
CPU的多cores难道不能并行吗?
另外,假如没有显示器呢?程序不需要显示器。只需要硬盘存储结果就可以了。
CPU并行和GPU并行有很大的区别。CPU的并行其实是一个芯片里封装了几个独立的CPU core,每个core可以各干各的。GPU的并行,架构上叫single instruction multiple data, SIMD,处理电路很多但是大家干的事情必须完全一致,只是操作的数据不同。
>> 要是,有谁能发明一个只能工具,自动能把cpu的程序改成gpu的程序,那就太方便了。
这个应该算吧: https://www.nvidia.com/en-us/deep-learning-ai/solutions/data-science/apache-spark-3/
Spark code stays the same. 程序员不用管code是在CPU还是GPU上跑。
你应该把自己的程序设计好, 哪部分在CPU, 哪部份拿到GPU上去算. 他们的优势是不一样的. GPU 的 core 比 CPU 的 core 多多了. 楼主自去去看一看就知道了.
多谢!收藏了。