CSLM 配置粗解
CSLM工具(continuous space language model toolkit)用于训练NNLM,支持SRILM、KENLM(默认)语言模型工具,CUDA加速,CSTM统计机器翻译。
本文粗略介绍在SRILM与CUDA环境下配置CSLM工具过程。操作系统为Ubuntu64bit 13.04 桌面版,Xeon系列CPU,GEFORCE显卡...
下载并安装CUDA toolkit
下载并安装SRILM
下载并安装boost库
./bootstrap.sh
./b2 install
以上安装过程略,可参考源码根目录下README、INSTALL
解压CSLM_v3.0.tgz,编辑Makefile文件:
1)CUDA_ROOT ?= cuda安装目录
2)BOLM_DIR=$(SRILM)更改为BOLM_DIR=SRILM安装目录
3)LM_TOOLS_INC=-I$(LM_TOOLS_DIR)/include/lmmax -I$(LM_TOOLS_DIR)/include/sphinx3 -I$(LM_TOOLS_DIR)/include/sphinxbase
改为LM_TOOLS_INC=-I. -I$(LM_TOOLS_DIR)/include/lmmax -I$(LM_TOOLS_DIR)/include/sphinx3 -I$(LM_TOOLS_DIR)/include/sphinxbase
4)LM_LIBS=-L$(BOLM_DIR)/lib/i686 -loolm -ldstruct -lmisc
改为LM_LIBS=-L$(BOLM_DIR)/lib/i686-m64 -loolm -ldstruct -lmisc此处需要到SRILM安装目录确认链接库的存储位置
5)CFLAGS=${OPT_FLAGS} -Wall -g ${DB} ${BLAS} ${BOLM_FLAGS} ${MOSES_INC} ${MOSES_CFLAGS}
改为
CFLAGS=${OPT_FLAGS} -Wall -g ${DB} ${BLAS} ${BOLM_FLAGS} ${LM_TOOLS_INC} ${MOSES_INC} ${MOSES_CFLAGS}
6)可能会因为GCC版本导致使用链接库时报错,如无法找到log,log10等,若出现该情况则做以下修改:
$(LM_TOOLS_DIR)/dmp2max: $(LM_TOOLS_DIR)/dmp2max.o $(LM_TOOLS_OBJS_lmmax)
gcc -g -O3 -Wall -lm -pthread -o $@ $(LM_TOOLS_DIR)/dmp2max.o $(LM_TOOLS_OBJS_lmmax) -lm
$(LM_TOOLS_DIR)/lm_convert: $(LM_TOOLS_DIR)/main_lm_convert.o $(LM_TOOLS_OBJS_main)
gcc -g -O3 -Wall -lm -pthread -o $@ $(LM_TOOLS_DIR)/main_lm_convert.o $(LM_TOOLS_OBJS_main) -lm
$(LM_TOOLS_DIR)/max_read: $(LM_TOOLS_DIR)/lm_max_read.o $(LM_TOOLS_OBJS_lmmax)
gcc -g -O3 -Wall -lm -pthread -o $@ $(LM_TOOLS_DIR)/lm_max_read.o $(LM_TOOLS_OBJS_lmmax) -lm
make CUDA=1 BOLM_TOOL=SRILM
echo "/usr/local/cuda/lib64" >>/etc/ld.so.conf
ldconfig