路漫漫其修远兮路漫漫其修远兮
1. 绪论 机器学习的概念 不需要确定性编程就可以赋予机器某项技能
Performance Task Experience,程序使用E在T上获得了P的提升,就是学习
按照任务种类分:回归、分类、聚类、降维
记录我在使用pyinstall打包客户端应用的时候,遇到的一些跨平台问题。
Windows7 适配问题 1 LoadLibrary: PyInstaller FormatMessageW failed. python 3.9 开始不再适配win 7,如果软件要在 win 7上运行,python环境最高是3.8
win7 缺失的动态运行加载库 1 无法启动此程序,因为计算机中丢失api-ms-win-core-path-l1-1-0.dll尝试重新安装该程序以解决此问题。 缺啥补啥,把DLL文件放入程序根目录文件夹,或者放到C:/windows/System32下。不过一般这个问题不会单独出现,是由于pyinstaller打包的时候,一些动态加载的库没被放进来。
复习课纲要 第一章 Amdal 定律 对定律的理解(任务不变的情况下,速度的提升、加速比)、加速的极限
应用题 6’*5
网格和线程块的布局,计算全局id 并行、并发、线程束、全局id、CPU多核与GPU众核
程序分析题 10*2
给代码写结果、分析为什么会有这种结果
CPU多核 10*2
数据划分:明确每个部分处理的数据范围 任务并行:线程池实验
CUDA编程 15*2
具体的问题,设计网格与线程块,或者给了线程块,只需要设计网格; 主函数中的固定流程;关键在写核函数;
本文通过编写CUDA核函数,以矩阵转置等5个问题为例,利用GPU众核对大规模问题的求解加速。
矩阵转置 算法流程 将需要转置的矩阵存储到GPU内存中。 在GPU上分配空间存储转置后的矩阵。 定义CUDA核函数来实现矩阵转置。该核函数应该使用线程块和线程格的概念来处理矩阵中的所有元素。在每个线程块中,线程可以使用共享内存来处理数据。最后,利用全局内存将结果写回到GPU。 调用CUDA核函数以执行矩阵转置。 将转置后的矩阵从GPU内存复制到主机内存中。 释放GPU内存 代码实现 在传统代码的基础上,利用共享内存优化访问全局内存的方式,同时使用padding操作,避免bank冲突。
贝叶斯公式趣解 贝叶斯学派认为没有什么是随机的,如果有,那一定是信息不够(香农信息论); 统计学中的贝叶斯学派就引出了后来机器学习中的贝叶斯学。
贝叶斯公式给了我们一种能力,即在事件发生后,通过事件发生前的各种概率进行推理的能力。
无意中使用贝叶斯的例子:一个笑话——水是剧毒的,因为罹患癌症的人都喝过水。 无意中被贝叶斯欺骗的例子:检出率很高的诊疗方法(准确率99.9%),误诊率是极高的(>50%)。因为自然人群中患病率(<1%)。 概率论统计学真是任人装扮的小姑娘。
本文将用两个实例来实战使用pthread进行多线程编程,主要包含两个部分:
以数据划分的方式并行计算PI值 基于生产者—消费者模式进行线程池开发,具体的业务处理逻辑将被简化,重点表现线程管理和同步 计算Pi 思路简述 依据莱布尼兹公式,通过多线程计算较多的次数,逼近$\pi$ 。用多线程的方式进行数据划分、即每个线程分担处理部分数据,从而进行加速。 同时由于多线程访问全局的结果可能会有冲突,因此使用互斥量和信号量组织线程有序将局部结果加到全局结果中。