项目简介
本项目运用C语言实现“Polynomial Regression and Stochastic Gradient Descent”算法,借助x86 - 32+SSE、x86 - 64+AVX汇编语言以及OpenMP技术优化性能。目标是在给定变量x和y的观测值时,找出多项式函数参数,使近似误差最小化。
项目的主要特性和功能
- 多项式回归:能对给定数据集开展多项式回归分析,可自定义多项式次数。
- 随机梯度下降:采用SGDBATCH算法寻找最优参数,支持AdaGrad加速算法。
- 多架构支持:提供x86 - 32 SSE和x86 - 64+AVX两种架构的实现。
- 并行计算:每种架构均有使用OpenMP并行计算的版本,提升计算性能。
- 参数配置:可通过命令行参数指定批量大小、多项式次数、学习率等,还能选择是否使用AdaGrad加速。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件,且已安装以下环境: - 编程语言:C(gcc编译器) - 汇编语言:x86 - 32+SSE和x86 - 64+AVX(nasm编译器) - 操作系统:Linux(Ubuntu)
编译
按需选择编译命令:
- x86 - 32 SSE版本:用gcc和nasm编译对应源文件。
- x86 - 64+AVX版本:用gcc和nasm编译对应源文件。
- OpenMP版本:编译时添加-fopenmp
选项。
运行
运行程序使用如下命令结构:
./program_name -batch <k> -degree <deg> -eta <eta> [-adagrad]
其中:
- -batch <k>
:指定批量大小。
- -degree <deg>
:指定多项式的次数。
- -eta <eta>
:指定学习率。
- -adagrad
(可选):表示使用AdaGrad加速算法。
若参数值不适用,程序将输出错误信息并终止。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】