小学期_Day3_课程作业要求&&一些编译优化命令

本文介绍了编译优化的基本概念和技术,包括并行优化的不同层面:指令级、线程级和机器级,并探讨了GCC编译器的具体优化选项及其使用方法。此外,还对比了几种主流编译器的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天写了第一个lab,没来得及更新,今天追更,第一次用优快云的Markdown,有点意思。

一些编译优化命令

1、Parallel Optimization Basics (并行优化)

程序类型:计算(Computing)密集型、IO密集型
并行类型:指令级(Instruction Level)- SIMD - 通过调编译器参数(Compiler Parameters)优化
线程级(CPU core level)
机器级(Machine level) - MPI

2、Compiling Optimizations (GCC)
  1. 与编译器优化无关的选项(功能性选项)
    -g:开关调试信息
    -l :链接库
    -L:增加链接库的搜索路径
    -I :增加头文件搜索路径
    -D:传宏文件
    -S:不完成编译,只生成汇编
    -c:.c => .o
    -o:输出文件名
    -pthread / -qopenmp // ICC specified :调用pthread库,进行多线程编译
    -openmp:调用openmp库,进行多线程编译
    -emit-llvm // clang specified
  2. 编译器优化选项
    -O[0-3] (Optimization):优化等级开关(等级越高,优化越强,也有可能出现更大的bug,看不出编译处的语句对应哪条源代码,编译速度越慢)。是一个比较大的开关。具体信息参考https://blog.youkuaiyun.com/zhang626zhen/article/details/52988242
    -f[](Flag):是个小开关,[ ]内填参数,有的和优化相关(-funroll-loop),有的和语义相关.
    -fno-[]:例如-fno-expetions
    -mtune
    -march=[ivybridge, haswell, broadwell, native]:其中native参数指和本地一致,调到本机CPU支持的最新指令
    CPUID instruction:运行时判断CPU版本的指令
    gcc编译器参数手册https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options

编译器:
GCC(开源)
Clang / Clang++ - LLVM C/C++ (开源)
ICC - Intel C++ Compiler(付费):对Intel自家的优化效果特别好
GPI - NVIDIA (付费)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值