明天下午三点的寒武纪深度学习框架研发工程师岗位面试,只能临时抱佛脚了,临阵磨枪,又快又光,加油!
一、多线程开发
1、多线程是如何实现同步的?
线程同步是指同一进程中的多个线程互相协调工作,从而达到一致性。之所以需要线程同步,是因为多个线程同时对一个数据对象进行修改操作时,可能会对数据造成破坏。
①使用C++标准库的thread、mutex头文件
②使用windows API的临界区对象
③使用Windows API的事件对象
二、Linux系统
三、C++
四、计算机系统结构
五、CUDA
六、Pthread,MPI,OpenMP,OenCL
七、MXNet
压榨内存消耗,显存优化,模型加速
1、MXNet的特点
灵活的编程模型:支持命令式和符号式编程模型以最大化效率和性能。
从云端到客户端可移植:可运行于多CPU、多GPU、集群、服务器、工作站甚至移动智能手机。
多语言支持:支持七种主流编程语言,包括C++、Python、R、Scala、Julia、Matlab和JavaScript。事实上,它是唯一支持所有 R 函数的构架。
本地分布式训练:支持在多CPU/GPU设备上的分布式训练,使其可充分利用云计算的规模优势。
性能优化:使用一个优化的C++后端引擎并行I/O和计算,无论使用哪种语言都能达到最佳性能。
云端友好,可直接与S3,HDFS和Azure兼容
参考链接https://www.jianshu.com/p/21381a08e2fb
2、MXNet的安装
我自己的笔记本是win10,也没有强有力的显卡,所以就安装CPU版本的MXNet了
>pip install mxnet
>python
>>>from mxnet import nd
>>>x = nd.arange(12)
>>>print(x)
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.]