项目简介
本项目专注于经典降维算法t-SNE(t-Distributed Stochastic Neighbor Embedding)的性能优化,旨在加速该算法在CPU单个核心上的运行。鉴于t-SNE算法代码复杂,项目重点识别其耗时的核心部分并加以改进,以此提升数据处理效率。
项目的主要特性和功能
- 自动分发:利用自动分发技术,根据硬件支持的指令集动态选择最优代码版本,提高性能。
- 性能优化:针对t-SNE算法的关键部分,如计算方差、更新梯度等,通过减少循环次数和并行计算等方式,提升计算效率。
- 可视化:提供Python脚本,可对t-SNE算法的输出结果进行可视化展示。
- 性能测量与比较:拥有测试工具和脚本,可测量不同实现方式的性能,并比较其在不同输入大小下的表现。
安装使用步骤
环境准备
确保开发环境安装了C++ 14编译器、Python 3.5+,且使用x86架构的处理器。
编译代码
在项目源码根目录下,运行make
命令编译项目。
运行测试
- 运行内核测试:使用
make kernel_test
命令,编译完成后,执行./build/kernel_test <your kernel name>
进行测试,可测试的内核有computegp
、updgradient
、zeromean
和computesed
。 - 运行t-SNE程序:使用
make tsne
命令编译,编译完成后,执行./build/tsne
。
可视化结果
运行python visualize.py
命令,对t-SNE
程序输出到output.txt
的结果进行可视化。
注意事项
- 目前仅支持二维输出,相关设置硬编码在
parameters.hpp
中。 - 暂无完整的端到端性能报告,仅能对内核进行单独性能测量。
- 未对编译器及编译器标志进行全面的性能优化研究。
后续工作
- 扩展支持多维输出。
- 实现完整的性能测量和报告。
- 进一步进行性能优化并检查硬件支持情况。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】