我该装什么CUDA版本的pytorch-gpu

也许你疑惑过对于自己电脑中的NVIDIA显卡型号,应该装什么CUDA版本的pytroch-gpu。结论是太老或者太新的CUDA版本都不行,一个显卡型号能支持的CUDA版本是一个有限的范围。

首先打开NVIDIA控制面板,点击“帮助->系统信息->组件”,能够看到NVCUDA.dll后面的一个CUDA版本,这个就是当前驱动程序支持的最大CUDA版本,如果你升级了驱动,可能会支持更高的CUDA版本,也可能不会提升。

而当你想跑别人的一份远古pytorch版本的代码时,也许你会发现对于新型号显卡如果安装太老CUDA版本的pytorch-gpu也会无法调用GPU(调用GPU会报错),实际上一个显卡型号支持的CUDA版本也有下限。

Read More »

Windows中C语言与Java的汉字编码问题

你是否遇到过C语言或者Java程序中的汉字字符串输出为乱码的现象,也许你去查询过解决办法,得到的结论就是简单地把源码文件转换为GBK编码存储,然而并未深思其中的原因。本文会解释其原因以及正确的应对方式(不转换源码的编码)。首先明确本文的操作环境:Windows操作系统(中文)、C语言编译器为MinGW-GCC。下面给出两个示例程序:

// a.c(utf-8)
#include <stdio.h>

int main(void)
{
    printf("%s", "你好");
    return 0;
}
// a.java(utf-8)

public class a {
    public static void main(String[] args) {
        System.out.println("你好");
    }
}

以上源码文件均使用UTF-8编码,然后我们打开PowerShell,编译两个文件:gcc a.cjavac a.java,然后运行:.\a.exejava a,会发现输出的均不是“你好”,而是乱码的“浣犲ソ”。实际上,以UTF-8编码的“你好”和以GBK编码的“浣犲ソ”的二进制序列是一样的(E4 BD A0 E5 A5 BD),你发现其中端倪了吗?

Read More »

个人电子书分享

我现在基本上告别了纸质书籍,看书都是用PC(Adobe Acrobat),需要手写的话就用手写板。手里的电子书大部分都是从Z-Library下载的,有一些是去淘宝购买的超星扫描PDF,还有少量是自己以前在异步社区图灵社区买的正版PDF。为了方便阅读,我存下来的PDF都做了个人的规范化处理,比如设置格式化页码(对齐纸质书页码,方便直接输入页码跳转),规范化书签目录还有纸张大小(大部分调整为16开)等等。

Read More »