Skip to main content

Fortran77 编译器对 Logical 的处理

· 5 min read
genshen
student in CS

在Fortran 77 中,可以使用 Logical 类型的变量来表示 .true. 或者 .false.。 实际上,是采用4字节(64位)来存储 Logical。 对于Intel ifort 编译器和 GNU 下的 gfortran 编译器,.true. 的表示会有所不同:

编译器.true..false.
Intel ifort0xFFFFFFFF(全1)0x00000000
GNU gfortran0x000000010x00000000

参考:https://stackoverflow.com/a/61597485

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

· 3 min read
genshen
student in CS

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

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

配置容器用于远程开发

· 6 min read

相信有很多有远程开发需求的同学,想用本地的IDE,但运行环境在远程。 例如,最近我需要在英伟达 GPU 上面写程序,需要 ssh 连接到实验室远程的一台机器上。 但这台机器为了满足不同用户的需求,没有在宿主主机上安装 CUDA 运行环境,大家都在这台机器上的 docker 的容器里面跑程序。

苦于在容器里面,没有直接的 IDE 来写代码,这篇文章主要介绍下如何配置我本地的 Mac 电脑,可以用我本地的 VS-Code 和 Jetbrains CLion 这两款编辑器/IDE连接到远程机器里面的容器,进行远程开发。

最终配置完成的效果就是:启动我 Mac 本地的IDE,就可在远程的容器里面进行开发、调试、运行:

| 我的本地系统上的 IDE | --ssh--> | 远程 Linux 机器(宿主) | --docker--> | docker 容器 |

Step0: 前提条件

  • 远程的Linux 宿主主机需要安装好 dockerd (docker 守护进程)。
  • 远程 Linux 宿主主机支持 ssh 连接,并且有一个可用的用户。