TorchScript IR 中的类型体系 | PyTorch

之前的一篇翻译《JIT Technical Overview》简单介绍了 TorchScript IR 中涉及到的几个主要类,包括 Graph、Node、Block、Value、Type 等。本文主要是从 C++ 接口的角度梳理下这些类之间的关系。

阅读更多

使用任意字体 | 个人博客

在大多数 hexo 主题中,虽然可以指定自定义字体,但是如果这个字体在阅读者的电脑上并没有安装,还是会用回默认的系统字体,这就大大限制了自定义字体的范围。有些 hexo 主题会支持自定义字体,本文将针对两种使用过的主题自定义字体的方法。

阅读更多

macOS 常用软件 | 玩机

  • Maccy:剪贴板历史记录
  • 快贴:跨平台剪贴板同步
  • LiuHai:隐藏设备屏幕 notch
  • MenubarX:状态栏浏览器
  • 超级右键:扩展右键菜单功能
  • BitBar:使用 Python 写菜单栏小程序
  • WGestures:右键手势
  • Karabiner Elements:按键映射
  • Keyboard Maestro:操作自动化
  • Itsycal:菜单栏日历
  • Bartender:隐藏菜单栏图标
  • TG Pro:自定义风扇策略
  • 自动切换输入法:根据 App 自动切换输入法
  • HyperSwitch:像 Windows 那样带有预览图的快速切换 App
  • Moom:窗口管理
  • MonitorControl:外接显示器控制
  • AppCleaner:彻底删除 App
  • Alfred:启动器
  • Mos:鼠标平滑滚动

动态库的符号可见性 | C & C++

在编译动态库时,可以通过 gcc 的 flag -fvisibility=[default|internal|hidden|protected] 参数修改动态库中符号的可见性,其中 default 表示符号可见,hidden 表示符号不可见,internal 和 protected 一般比较少用,这里不展开。cmake 对应的命令是 set(CMAKE_CXX_VISIBILITY_PRESET hidden)

如果想要某些符号可见,可以使用如下方式修饰函数声明:

1
void __attribute__ ((visibility ("default"))) visible_fun();

共享库设置部分符号不可见有如下好处:

  • 提升动态共享对象 DSO (Dynamic Shared Object) 的加载效率
  • 减少 DSO 的大小
  • 避免符号冲突