- 博客(12)
- 收藏
- 关注
原创 【基础机器学习算法原理与实现】使用感知器算法LDA、最小二乘法LSM、Fisher线性判别分析与KNN算法实现鸢尾花数据集的二分类问题
本文设计并实现了PerceptronLA、PseudoIA、LeastSM、LinearDA、KNN等五个算法类,以及DataProcessor的数据处理类。对感知器算法LDA、最小二乘法LSM的伪逆法与梯度下降法、Fisher线性判别分析与KNN算法进行了实现与分析,其中前三种算法都是对一次线性回归的求解。鸢尾花数据集中第一类鸢尾花“Setosa”和第二类“Versicolor”、第三类“Virginica”的特征分离度非常的高,而第二类“Versicolor”和第三类“Virginica”的分离度很
2022-05-11 21:48:42 2426
原创 经典同步问题最易理解的解题思路(PV操作/操作系统/408)
信号量是操作系统用来解决并发中的互斥和同步问题的一种方法,具体的原理在此不做赘述。本文将从题目出发一步步的对同步问题(生产者消费者问题,读者写者问题,哲学家进餐问题)进行理解,并将以王道上的一道例题来验证解题思路。此处仅战术pv操作的逻辑,逻辑与程序一致,可以自行对其进行转换。一、生产者消费者问题问题描述:一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,只有缓冲区没满时,生产者才能把消息放入缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是.
2022-04-30 17:36:44 3078 1
原创 Cuda官方案例分析 clock 使用时钟功能准确测量内核程序内各部分性能
在本案例中,计算方法主要为创建clock_t变量进入内核函数内部记录时钟周期数,然后将每次记录得到的数据写入device memory中传回内存,最后计算平均值输出。我将案例中最主要的计时部分列了下来方便大家进行参考。 { clock_t *dtimer = NULL; clock_t timer[NUM_BLOCKS * 2];//numblocks即为块的个数 checkCudaErrors(cudaMalloc((void **)&dtimer, s.
2021-03-01 17:35:12 348
原创 Cuda官方案例分析 asyncAPI 两种测试内核函数运行时间的方法(CPU/GPU)
1、使用Cuda提供的Event进行计时 // create cuda event handles cudaEvent_t start, stop; checkCudaErrors(cudaEventCreate(&start)); checkCudaErrors(cudaEventCreate(&stop)); // record timestamp before and after running of kernel_function
2021-03-01 16:47:42 499
原创 CUDA并行程序设计 GPU硬件架构与线程 学习笔记
GPU硬件架构GPU实际上是一个SM的阵列,每个SM包含若干个SP。一个SP可以执行一个thread,但是实际上并不是所有的thread能够在同一时刻执行。Nvidia把32个threads组成一个warp,warp是调度和运行的基本单元。warp中所有threads并行的执行相同的指令。一个warp需要占用一个SM运行,多个warps需要轮流进入SM。由SM的硬件warp scheduler负责调度。目前每个warp包含32个threads(Nvida保留修改数量的权利)。所以,一个GPU上res
2021-02-23 16:53:28 820 2
原创 visual studio c++环境下应用mpi与openmp混合编程的简单程序
1 环境配置与安装 vs下的openmp只需去项目->属性->c/c++->openmp支持打开即可 而mpi的安装建议参考博文(一)MS-MPI入门及第一个程序_xinwuya_的博客-CSDN博客2 mpi与openmp混合编程混合编程首先要对两种都有一定的了解openmp是基于共享内存下的并行操作,采用openmp执行并行的程序优点在于可以不用给所有线程都给予它自己的内存空间来存储变量(但是请注意如果多个线程反复读写同一块区域会造成排队现象而大幅度的减少并行效..
2021-02-19 14:55:49 1702
原创 OpenMP基础知识与使用并行思想计算三维点阵两两之间的距离之和
1、编译器对OpenMP的支持 目前支持OpenMP的C/C++编译器主要有微软的VC和Intel的C/C++编译器。 在微软的VC8.0中,要将项目的属性对话框中“配置属性”下的“C/C++”下的“语言”页里,将“OpenMP支持”由否改为“是/(openmp)”即可。2、...
2021-02-03 14:23:24 282
原创 归并排序题目整理归并(hdu)
hdu2019数列有序 1 #include 2 using namespace std; 3 int A[101]; 4 int main() 5 { 6 int m,n; 7 void Merge(int p,int q,int r); 8 while(cin >> n >> m){ 9 if(n == 0&&m =
2017-10-25 09:36:20 1084
原创 从零开书学算法(导论)之归并排序
归并排序思想为将序列每相邻两个数字进行归并操作(merge),形成floor(n/2)个序列,排序后每个序列包含两个元素将上述序列再次归并,形成floor(n/4)个序列,每个序列包含四个元素重复步骤2,直到所有元素排序完毕。下列代码为单次归并的函数,可作为模板用于代码中。PS:其中前段为第p位到第q位,后段为第q+1位到第r位。 1 void Merge(int p,in
2017-10-24 18:46:17 222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人