Mac DNS解析失败

OS X 10.10.4
使用ping提示ping: cannot resolve xxx.xxx.xxx: Unknown host
但是使用dig可以解析域名。

Mac DNS解析失败 by @sskaje: https://sskaje.me/2015/07/mac-dns%e8%a7%a3%e6%9e%90%e5%a4%b1%e8%b4%a5/

Incoming search terms:

MacBook Pro 编译支持CUDA的MSIEVE

之前试过在CentOS 6上编译GMP-ECM和MSIEVE,后来有一天发现本机的MacPorts带的GMP-ECM不是最新版,当前6.4.4的情况下,MacPorts里的才6.3.
顺道也想侥幸一下看看这个2012款的rmbp能不能上CUDA,于是开始折腾。

环境

MacBook Pro with Retina Display 2012 (GT 650 M)
OS X 10.10.4
MacPorts

安装CUDA环境

CUDA Toolkit官方下载地址是:https://developer.nvidia.com/cuda-downloads
下载里目前最新版本是7.0.29,但是下载完成之后设置里还会提示有新版。
另外,Nvidia官方还给了个NVIDIA CUDA Getting Started Guide for Mac OS X.
我就简单地装了这个toolkit 没配环境变了。

第一次尝试

最早的尝试基于MacPorts自带的gmp和gmp-ecm编译CUDA版本的msieve,顺道还编译了个CPU版本的

这俩拿 RSA-39 的跑,都正常。但是自己生成了个RSA-256的,就有个ECM里报出的assert,没法工作。于是尝试编译ecm。
中间试过好几种方案,最后记录最后的版本

最新版 GMP, GMP-ECM, MSIEVE

最新版 GMP-ECM 也自带GPU的计算了,于是我也就把这个加了进去。

首先,从项目源上拉下最新版本

编译 GMP,原本是拉的最新release,但是中间遇到了一些问题,asm的编译不过去,于是也用trunk了。

编译 ECM

第一次configure的时候报当前系统不支持cuda,发现了个bug,报了官方,然后继续了,又发现这个错误:

ar -tv .libs/libecm.a,发现包里还有个libgmp.a,ar -d干掉就好了

但是运行的时候

看到@rpath,研究了半天,确信是跟 linux ldconfig 类似的问题,但是搜到的基本都是XCode如何修改。。。
最后发现是之前文档里提示加环境变量的问题:

编译MSIEVE
这个更麻烦,主要原因是7.x的CUDA不支持sm_1x,而MSIEVE里试图编译了 sm_11, sm_13, sm_20 三个架构。

错误如下

因为GT 650M 最高支持3.0的架构,于是我去改了下代码,包括:

至少,需要修改前两个Makefile,把sm_11和sm_13的编译选项删掉

运行

GPU版本的msieve运行需要b40c/sort_engine_smXX.so,所以如果要移动目录,需要保证这个.so的相对位置。

切回来,花屏。

换个

而,MSIEVE的GPU计算部分只在NFS polynomial selection里有用,其他过程没区别,于是白瞎了。

MacBook Pro 编译支持CUDA的MSIEVE by @sskaje: https://sskaje.me/2015/07/macbook-pro-%e7%bc%96%e8%af%91%e6%94%af%e6%8c%81cuda%e7%9a%84msieve/

Incoming search terms:

Build GMP-ECM on CentOS 6

1 Download GMP-ECM from http://ecm.gforge.inria.fr/

2 Download GMP-5.1.1 from PUIAS: http://springdale.math.ias.edu/data/puias/computational/6/x86_64/
wget http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias -P /etc/pki/rpm/
Just wget all gmp511-*.rpm and rpm -i

3 Build GMP-ECM
./configure ... --with-gmp-include=/usr/local/gmp/5.1.1/include --with-gmp-lib=/usr/local/gmp/5.1.1/lib64
make

4 Build MSIEVE with ECM
Edit Makefile, add -I and -L to GMP-ECM prefix/{lib,include}
make

5 Add GMP-5.1.1 to ld.so.conf
ldconfig

6 RUN msieve

Build GMP-ECM on CentOS 6 by @sskaje: https://sskaje.me/2015/07/build-gmp-ecm-centos-6/

Incoming search terms: