summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/.gitignore4
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/CMakeLists.bwa_wasm.txt124
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/CMakeLists.txt73
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/README.md46
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/bwa.patch13
5 files changed, 260 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/.gitignore b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/.gitignore
new file mode 100644
index 000000000..cd7209590
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/.gitignore
@@ -0,0 +1,4 @@
+build
+libz
+bwa
+include
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/CMakeLists.bwa_wasm.txt b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/CMakeLists.bwa_wasm.txt
new file mode 100644
index 000000000..a8d1d8821
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/CMakeLists.bwa_wasm.txt
@@ -0,0 +1,124 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+cmake_minimum_required (VERSION 3.14)
+
+project(bwa_wasm C)
+
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake)
+
+################ dependencies ################
+find_package(Binaryen 111 REQUIRED)
+
+################ LIBZ ################
+set(LIBZ_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../libz)
+add_library(z_wasm STATIC
+ ${LIBZ_SRC_DIR}/adler32.c
+ ${LIBZ_SRC_DIR}/compress.c
+ ${LIBZ_SRC_DIR}/crc32.c
+ ${LIBZ_SRC_DIR}/deflate.c
+ ${LIBZ_SRC_DIR}/gzclose.c
+ ${LIBZ_SRC_DIR}/gzlib.c
+ ${LIBZ_SRC_DIR}/gzread.c
+ ${LIBZ_SRC_DIR}/gzwrite.c
+ ${LIBZ_SRC_DIR}/infback.c
+ ${LIBZ_SRC_DIR}/inffast.c
+ ${LIBZ_SRC_DIR}/inflate.c
+ ${LIBZ_SRC_DIR}/inftrees.c
+ ${LIBZ_SRC_DIR}/trees.c
+ ${LIBZ_SRC_DIR}/uncompr.c
+ ${LIBZ_SRC_DIR}/zutil.c
+)
+
+set_target_properties(z_wasm PROPERTIES LINKER_LANGUAGE C)
+
+target_compile_definitions(z_wasm PRIVATE Z_HAVE_UNISTD_H _LARGEFILE64_SOURCE=1)
+
+target_compile_options(z_wasm
+ PRIVATE
+ -Wno-unused-function
+ -Wno-unused-variable
+)
+
+target_include_directories(z_wasm
+ PUBLIC
+ ${LIBZ_SRC_DIR}
+)
+
+################ BWA_WASM ################
+set(BWA_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+set(BWA_SOURCE
+ ${BWA_SRC_DIR}/utils.c
+ ${BWA_SRC_DIR}/kthread.c
+ ${BWA_SRC_DIR}/kstring.c
+ ${BWA_SRC_DIR}/ksw.c
+ ${BWA_SRC_DIR}/bwt.c
+ ${BWA_SRC_DIR}/bntseq.c
+ ${BWA_SRC_DIR}/bwa.c
+ ${BWA_SRC_DIR}/bwamem.c
+ ${BWA_SRC_DIR}/bwamem_pair.c
+ ${BWA_SRC_DIR}/bwamem_extra.c
+ ${BWA_SRC_DIR}/malloc_wrap.c
+ ${BWA_SRC_DIR}/QSufSort.c
+ ${BWA_SRC_DIR}/bwt_gen.c
+ ${BWA_SRC_DIR}/rope.c
+ ${BWA_SRC_DIR}/rle.c
+ ${BWA_SRC_DIR}/is.c
+ ${BWA_SRC_DIR}/bwtindex.c
+ ${BWA_SRC_DIR}/bwashm.c
+ ${BWA_SRC_DIR}/bwase.c
+ ${BWA_SRC_DIR}/bwaseqio.c
+ ${BWA_SRC_DIR}/bwtgap.c
+ ${BWA_SRC_DIR}/bwtaln.c
+ ${BWA_SRC_DIR}/bamlite.c
+ ${BWA_SRC_DIR}/bwape.c
+ ${BWA_SRC_DIR}/kopen.c
+ ${BWA_SRC_DIR}/pemerge.c
+ ${BWA_SRC_DIR}/maxk.c
+ ${BWA_SRC_DIR}/bwtsw2_core.c
+ ${BWA_SRC_DIR}/bwtsw2_main.c
+ ${BWA_SRC_DIR}/bwtsw2_aux.c
+ ${BWA_SRC_DIR}/bwt_lite.c
+ ${BWA_SRC_DIR}/bwtsw2_chain.c
+ ${BWA_SRC_DIR}/fastmap.c
+ ${BWA_SRC_DIR}/bwtsw2_pair.c
+ ${BWA_SRC_DIR}/main.c
+)
+
+add_executable(${PROJECT_NAME} ${BWA_SOURCE})
+
+set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME bwa.wasm)
+
+target_compile_definitions(${PROJECT_NAME}
+ PRIVATE
+ USE_MALLOC_WRAPPERS
+ __SSE__ __SSE2__ __SSE4_1__
+ _WASI_EMULATED_MMAN _WASI_EMULATED_SIGNAL _WASI_EMULATED_PROCESS_CLOCKS
+)
+
+target_compile_options(${PROJECT_NAME}
+ PRIVATE
+ -Wno-unused-function
+ -Wno-unused-variable
+ -msimd128
+)
+
+target_link_options(${PROJECT_NAME}
+ PRIVATE
+ -Wno-unused-command-line-argument
+ LINKER:--allow-undefined,--export=__heap_base,--export=__data_end
+ LINKER:-z,stack-size=1048576
+)
+
+target_link_libraries(${PROJECT_NAME} z_wasm wasi-emulated-process-clocks)
+
+add_custom_target(bwa_wasm_opt ALL
+ COMMAND
+ ${Binaryen_WASM_OPT} -Oz --enable-simd -o bwa.opt.wasm bwa.wasm
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/bwa.opt.wasm
+ WORKING_DIRECTORY
+ ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+add_dependencies(bwa_wasm_opt ${PROJECT_NAME})
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/CMakeLists.txt b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/CMakeLists.txt
new file mode 100644
index 000000000..5db52a38b
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/CMakeLists.txt
@@ -0,0 +1,73 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+cmake_minimum_required (VERSION 3.14)
+
+project(bwa_wasm)
+
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
+
+################ dependencies ################
+find_package(Python3 REQUIRED)
+find_package(WASISDK 16.0 REQUIRED)
+execute_process(
+ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/../../../test-tools/pick-up-emscripten-headers/collect_files.py --install ../include --loglevel=ERROR
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
+)
+
+#######################################
+include(ExternalProject)
+
+################ libz ################
+ExternalProject_Add(libz_src
+ GIT_REPOSITORY https://github.com/madler/zlib.git
+ GIT_TAG 04f42ceca40f73e2978b50e93806c2a18c1281fc
+ GIT_PROGRESS ON
+ GIT_SHALLOW ON
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libz
+ UPDATE_COMMAND ""
+ PATCH_COMMAND ""
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
+)
+
+################ bwa ################
+ExternalProject_Add(bwa
+ GIT_REPOSITORY https://github.com/lh3/bwa.git
+ GIT_TAG 139f68fc4c3747813783a488aef2adc86626b01b
+ GIT_PROGRESS ON
+ GIT_SHALLOW ON
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bwa
+ DEPENDS libz_src
+ UPDATE_COMMAND git clean -ffdx && git checkout -- *
+ && ${CMAKE_COMMAND} -E echo "Copying pre-installed CMakeLists.txt"
+ && ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.bwa_wasm.txt CMakeLists.txt
+ && git apply ../bwa.patch
+ CONFIGURE_COMMAND ${CMAKE_COMMAND}
+ -DWASI_SDK_PREFIX=${WASISDK_HOME}
+ -DCMAKE_TOOLCHAIN_FILE=${WASISDK_TOOLCHAIN}
+ -DCMAKE_SYSROOT=${WASISDK_SYSROOT}
+ -DCMAKE_C_FLAGS=-isystem\ ${CMAKE_CURRENT_SOURCE_DIR}/../include/sse\ -isystem\ ${CMAKE_CURRENT_SOURCE_DIR}/../include/libc/musl
+ ${CMAKE_CURRENT_SOURCE_DIR}/bwa
+ BUILD_COMMAND make bwa_wasm_opt -j 4
+ INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_if_different ./bwa.opt.wasm ${CMAKE_CURRENT_BINARY_DIR}/bwa.wasm
+)
+
+################ bwa data ################
+ExternalProject_Add(bwa-kit
+ PREFIX bwa-kit
+ URL https://sourceforge.net/projects/bio-bwa/files/bwakit/bwakit-0.7.15_x64-linux.tar.bz2/download
+ URL_HASH SHA256=0a7b11971bc7916b68e9df35a364afe77cb3000df02ffb3a6fbd1aff9be5878c
+ DOWNLOAD_NAME bwakit-0.7.15_x64-linux.tar.bz2
+ DOWNLOAD_EXTRACT_TIMESTAMP ON
+ DOWNLOAD_NO_EXTRACT OFF
+ DOWNLOAD_NO_PROGRESS ON
+ UPDATE_COMMAND ""
+ PATCH_COMMAND ""
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/bwa-kit/src/bwa-kit/resource-GRCh38/hs38DH-extra.fa
+ ${CMAKE_CURRENT_BINARY_DIR}/hs38DH-extra.fa
+)
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/README.md b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/README.md
new file mode 100644
index 000000000..a8fbe3e69
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/README.md
@@ -0,0 +1,46 @@
+"bwa" sample introduction
+==============
+
+This sample demonstrates how to build [bwa](https://github.com/lh3/bwa) into
+WebAssembly with simd support and run it with iwasm.
+
+## Preparation
+
+please refer to [installation instructions](../README.md).
+
+## Build
+
+``` shell
+$ mkdir build && cd build
+$ cmake ..
+$ make
+# to verify
+$ ls bwa.wasm
+```
+
+## Download sample data
+
+Download the bwa-0.7.15 binary package from
+[such an address](https://sourceforge.net/projects/bio-bwa/files/bwakit/bwakit-0.7.15_x64-linux.tar.bz2/download),
+a sample data file named **hs38DH.fa** will be used later.
+
+If want more data, please refer to http://hgdownload.cse.ucsc.edu/goldenpath/hg19/bigZips/
+
+## Run workload
+
+Firstly please build iwasm with simd support:
+
+``` shell
+$ cd <wamr dir>/product-mini/platforms/linux/
+$ mkdir build && cd build
+$ cmake ..
+$ make
+```
+
+Then compile wasm file to aot file and run:
+
+``` shell
+$ cd <wamr dir>/samples/workload/bwa/build
+$ <wamr dir>/wamr-compiler/build/wamrc -o bwa.aot bwa.wasm
+$ <wamr dir>/product-mini/platforms/linux/iwasm --dir=. bwa.aot index hs38DH.fa
+```
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/bwa.patch b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/bwa.patch
new file mode 100644
index 000000000..5599ca319
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/workload/bwa/bwa.patch
@@ -0,0 +1,13 @@
+diff --git a/utils.c b/utils.c
+index 9ceb1be..323299f 100644
+--- a/utils.c
++++ b/utils.c
+@@ -301,6 +301,7 @@ long peakrss(void)
+ #ifdef __linux__
+ return r.ru_maxrss * 1024;
+ #else
+- return r.ru_maxrss;
++ /*return r.ru_maxrss;*/
++ return 0;
+ #endif
+ }