Skip to main content

4 posts tagged with "compiler"

View All Tags

一个用于包装编译器的脚本

· 3 min read
genshen
student in CS

有时候,在调用编译器的时候,我们像移除掉编译器的某些参数(例如这些参数是 cmake 等工具生成的,我们由不好修改cmake的内部机制)。 一种典型的场景是,英伟达的 nvcc 对很多 gcc/clang 的参数都不支持,当使用 nvcc 作为编译器时,需要移除掉一些参数或者进行特殊处理。

这时候,可以考虑用我御用的脚本。 下面的脚本是一个参考,支持移除编译器参数、修改或者添加编译器参数。 这里用的编译器是 hipcc(在英伟达平台上,hipcc 会调用 nvcc,然后 nvcc 调用系统的gcc),大家可以在此基础上进行修改。

在 CUDA 环境下安装 HIP

· 9 min read

HIP (Heterogeneous-Compute Interface for Portability) 是 AMD 开发的一款异构计算的接口工具。 HIP 允许只用写一套代码(hip代码), 就可以将程序同时在 NVIDIA GPU 和 AMD GPU 及 DCU 上编译运行。

HIP is a C++ Runtime API and Kernel Language that allows developers to create portable applications for AMD and NVIDIA GPUs from single source code.

HIP 的 API 和 CUDA 的API十分类似,例如 CUDA 中内存拷贝用cuMemory, 在 hip 中用hipMemcpy,且参数也十分一致。 因此,会 CUDA 的开发者可以很轻松地转移到 hip 上。 并且,hip 还提供了hipfy 工具,将 CUDA 代码转换为 hip 代码。
HIP 在不降低性能的前提下,统一了CUDA API 和AMD GPU 编程API,可谓极大地降低了各个平台的适配与移植工作, 做到了一套代码,在多个异构平台上运行。 可以说, "舍弃 CUDA,进入HIP时代"。

那么,在 NV GPU下,如何安装并使用 hip 呢?

Cross Building Mingw-w64 Toolchain on macOS

· 3 min read

In this blog, we will show the steps of building Mingw-w64 on macOS system. In fact, we can install mingw-w64 corss building toolchain by homebrew package manager. Here, we jsut analysis the building steps of mingw-w64 toolchain, and it can be easily migrated to linux system.

Overview

We need to build following tools/libraries:

  • binutils: "Binutils is a collection of binary programming tools used to assemble, link and manipulate binary and object files.", like gnu linker ld, gnu assembler as, nm, ar and strings. see more.
  • texinfo: Apple's makeinfo is old and has bugs. It be only used as building dependency.
  • gcc: compiler for c/c++/fortran language.
  • mingw-w64: "The mingw-w64 project is a complete runtime environment for gcc to support binaries native to Windows 64-bit and 32-bit operating systems.". Provide windows api headers, runtime and other tools.