鯤鵬服務器編譯安裝Hisat2-2.2.1

準備工作

源碼修改

執(zhí)行下列命令

unzip hisat2-2.2.1-source.zip
unzip sse2neon.zip
cp sse2neon-1.5.0/sse2neon.h hisat2-2.2.1
cd hisat2-2.2.1/

修改Makefile

  1. 修改前:
BITS=32
ifeq (x86_64,$(shell uname -m))
BITS=64
endif

修改后:

BITS=32
ifeq (x86_64,$(shell uname -m))
BITS=64
endif
ifeq (aarch64,$(shell uname -m))
BITS=64
endif
  1. 修改前:
ifeq (32,$(BITS))
        BITS_FLAG = -m32
endif

ifeq (64,$(BITS))
        BITS_FLAG = -m64
endif
SSE_FLAG=-msse2

修改后:

ifeq (32,$(BITS))
        BITS_FLAG = -m32
endif

ifeq (64,$(BITS))
        BITS_FLAG = -m64
endif
SSE_FLAG=-msse2

ifeq(aarch64,$(shell uname -m))
        BITS_FLAG = 
        SSE_FLAG = 
endif
  1. 修改前:
EXTRA_FLAGS += -DPOPCNT_CAPABILITY -std=c++11

修改后:

EXTRA_FLAGS += -std=c++11
  1. 修改前:
DEBUG_FLAGS    = -O0 -g3 $(BITS_FLAG) $(SSE_FLAG)
DEBUG_DEFS     = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\""
RELEASE_FLAGS  = -O3 $(BITS_FLAG) $(SSE_FLAG) -funroll-loops -g3
RELEASE_DEFS   = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\""
NOASSERT_FLAGS = -DNDEBUG
FILE_FLAGS     = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE

修改后:

DEBUG_FLAGS    = -O0 -g3 $(BITS_FLAG) $(SSE_FLAG) -funrool-loops -fsigned-char
DEBUG_DEFS     = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\""
RELEASE_FLAGS  = -O3 $(BITS_FLAG) $(SSE_FLAG) -funroll-loops -g3 -Xlinker --allow-multiple-definition -fsigned-char
RELEASE_DEFS   = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\""
NOASSERT_FLAGS = -DNDEBUG
FILE_FLAGS     = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE

修改源代碼

  1. 修改aligner_sw.h
    修改前:
#include <emmintrin.h>

修改后:

#include "sse2neon.h"
  1. 修改sse_util.h
    修改前:
#include <emmintrin.h>

修改后:

#include "sse2neon.h"

編譯

執(zhí)行以下命令

make

注意事項

  • 由于arm下沒有cpuid.h,所以EXTRA_FLAGS里的-DPOPCNT_CAPABILITY必須刪除
  • 由于arm架構下char默認為unsigned,而x86架構下默認為signed,而hisat2-2.2.1里使用了signed char,因此需要加上-fsigned-char

參考資料

  1. HISAT2 2.1.0 移植指南(CentOS 7.6)
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容