![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
CPU || GPU || CUDA
计算机底层逻辑
PerpetualLearner
这个作者很懒,什么都没留下…
展开
-
线程、进程、协程概念辨析
线程和进程线程、进程经常放在一起对比:《线程||进程||行程||多线程||多进程一次搞清》《IO密集型任务(多线程)||计算密集型(多进程)》线程是最小单位,进程内至少包含一个线程。对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元。进程间的切换(涉及栈、寄存器、虚拟内存、文件句柄等)开销较大,但是相对安全;不同进程通过进程间通讯来通信。线程是比进程更小的、CPU调度...原创 2020-03-11 13:51:45 · 268 阅读 · 0 评论 -
单核CPU、并行、进程、线程、纤程、协程出现必要性解析
并发/并行从物理基础元素角度来看,当只有一个CPU时,执行一个程序这个程序就会一直占用CPU,直到程序运行结束。如果这个程序的运行过程中,需要用到CPU的部分很快就结束了,程序的其他环节(比如IO阻塞等)正在占用时间,此时CPU是空置的。于是就有了并发。并发的不足并发执行加速了对CPU的使用效率,也带来了问题。程序A运行到一半,程序B进来抢占CPU,程序A的中间状态/内存/变量...原创 2020-03-11 13:50:55 · 646 阅读 · 0 评论 -
通过Numba调用CUDA用GPU为Python加速:进阶理解网格跨步、多流、共享内存
前导知识理解本文需要先了解:计算机底层基础知识,CPU、机器码、编译等《编译型语言与解释型语言如何在计算机底层运行》《计算机底层运转机制:多核、缓存、CPU、CU、ALU、Cache》Python代码与GPU加速的关系《Python程序如何用GPU加速:Tesla、CUDA、Numba》在CPU入门numba《Python代码在CPU下加速:Numba入门》在GPU入门numba《...原创 2019-12-03 15:06:45 · 6834 阅读 · 3 评论 -
Python通过Numba实现GPU加速
Python与GPUPython作为解释型语言,.py文件一般是没法直接用GPU加速的,关于Python与GPU的结合点,以及GPU、CPU、CUDA、多核、并行、机器码…等底层实现,参考:《Python程序如何用GPU加速:Tesla、CUDA、Numba》《计算机底层运转机制:多核、缓存、CPU、CU、ALU、Cache》《编译型语言与解释型语言如何在计算机底层运行》Numb...原创 2019-12-03 11:29:14 · 13187 阅读 · 3 评论 -
Python代码在CPU下加速:Numba入门
Python代码加速主要考虑代码优化加速,而非代码逻辑优化。Python代码直接运行GPU是不行的,需要一定的改变,Numba是一个接口,不过本文主要针对CPU下的Python代码加速。Python解释器工作原理Python文件执行过程.py文件通过解释器转化为虚拟机可以执行的字节码(.pyc);字节码在虚拟机上执行,得到结果;字节码是一种只能运行在虚拟机上的文件...原创 2019-12-02 18:57:38 · 4865 阅读 · 0 评论 -
Python程序如何用GPU加速:Tesla、CUDA、Numba
概念解析首先要明白,普通的Python代码是无法使用GPU加速的,只能在GPU上跑针对GPU设计的程序。硬件加速必须要用硬件语言实现。查询Python+GPU关键字,除了TensorFlow,另外出镜率比较高的几个概念是:Numba、CUDA、PyCUDA、minpy。要理解这些,需要对Python的理解更底层一些。关于计算机的一些底层实现,参见:《编译型语言与解释型语言如何在计算...原创 2019-12-02 16:56:56 · 19522 阅读 · 4 评论 -
计算机底层运转机制:多核、缓存、CPU、CU、ALU、Cache
现代CPU《编译型语言与解释型语言如何在计算机底层运行》中提到,计算机依靠编译器将源代码(编译型编程代码:C之类)编译成机器码执行,准确说,就是用CPU执行。冯 诺伊曼架构冯⋅\cdot⋅诺伊曼(1945)提出当前计算机的主流架构,包含以下三大部分:CPU(Central Processing Unit):包含控制单元(Control Unit)、逻辑运算单元(Arithme...原创 2019-12-02 14:29:09 · 8420 阅读 · 2 评论 -
编译型语言与解释型语言如何在计算机底层运行
计算机架构 计算机的物理属性限制其只能执行二进制文件,无论多么复杂绚丽的程序、应用,在最底层,就是0、1。计算机的物理底层,是半导体。就是说,半导体只能以二进制进行计算。可执行文件,是二进制机器语言的集合,可以被机器执行,得到想要的结果。比如Windows里的.exe文件,即executable。计算机能执行的指令,称为机器语言或机器码。不同计算机芯片厂商所设计的半导体电路不同,...原创 2019-11-29 20:04:51 · 1610 阅读 · 0 评论