Mac OS 使用OpenMP

今天做高性能作业,发现OS X的GCC(其实是clang,对编译器了解不多,今天又沉浸在wiki百科的大牛故事中)没有包含openmp,不支持-fopenmp编译选项,所以查了一下MAC OS上使用Open MP的简便方案。参见StackOverflow homebrew安装libomp brew install libomp 编译时增加选项 g++ -Xpreprocessor -fopenmp main.cpp -o main -lomp -std=c++11 -Xpreprocessor选项将参数-fopenmp传递给openmp预处理程序。

数据读取之Endianness

在读取MNIST数据集时,要注意的一个事情是,MNIST的数据存储采用的是high endian(也作big endian,即大端),高位字节存储在低位。big endian通常为网络中传输数据使用的字节序。 与big endian相对的是little endian,通常我们使用的Intel、amd处理器都是使用这种字节序的,两者的区别可见wikipedia。 所以,在加载MNIST数据集时,我们需要将字节序反过来,例如,在Julia中,可以使用下面函数 # convert “0x60ea0000” to “0x0000ea60” ntoh(x)