From 73f49c5ffd2144428f59e246954b9f8ea39a0d47 Mon Sep 17 00:00:00 2001 From: ConvolutedDog Date: Tue, 3 Sep 2024 02:09:13 +0800 Subject: [PATCH 1/2] Add workflow --- CMakeLists.txt | 2 ++ README.md | 1 + ...213\350\257\255\350\250\200\346\214\207\345\215\227.md" | 7 +++++++ scripts/configure.sh | 2 ++ 4 files changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 044bc4b6..03875868 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,8 @@ if (UNIX AND NOT APPLE) set(COMPILER_RT_BUILTINS_HIDE_SYMBOLS Off) endif() +find_package(OpenSSL REQUIRED) + add_subdirectory(third_party/llvm-project/llvm EXCLUDE_FROM_ALL) # 需要手动添加llvm的头文件路径 add_library(llvm_include_dir INTERFACE) diff --git a/README.md b/README.md index 5ab5f3a5..2871c463 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # 般若编程语言 +[![Remote Docker Test Workflow](https://github.com/ConvolutedDog/prajna/actions/workflows/Remote-Docker-Test.yml/badge.svg?branch=dev)](https://github.com/ConvolutedDog/prajna/actions/workflows/Remote-Docker-Test.yml) [![Jenkins](http://dev.matazure.com:8080/job/prajna/job/main/badge/icon)](http://dev.matazure.com:8080/blue/organizations/jenkins/prajna/activity) 般若是一门专门为构建更加模块化, 自动化和智能化的人工智能基础设施而研发的开源编程语言. 般若编程语言的目标是同时满足人工智能研究, 训练和部署等多个阶段的使用; 可以简易使用的CPU, GPU和各种TPU为人工智能提供算力. diff --git "a/docs/\350\210\254\350\213\245\347\274\226\347\250\213\350\257\255\350\250\200\346\214\207\345\215\227.md" "b/docs/\350\210\254\350\213\245\347\274\226\347\250\213\350\257\255\350\250\200\346\214\207\345\215\227.md" index 44beda25..3655c132 100644 --- "a/docs/\350\210\254\350\213\245\347\274\226\347\250\213\350\257\255\350\250\200\346\214\207\345\215\227.md" +++ "b/docs/\350\210\254\350\213\245\347\274\226\347\250\213\350\257\255\350\250\200\346\214\207\345\215\227.md" @@ -39,6 +39,13 @@ Prajna不会强调面向对象和函数式编程等花里胡哨的编程概念. ### 源码安装 +#### Ubuntu 20.04 需要安装的一些依赖库 + +```bash +apt install git clang wget libgnutls28-dev libsodium-dev uuid-dev build-essential libssl-dev +Install CMake 2.30.0 参考: https://gist.github.com/bmegli/4049b7394f9cfa016c24ed67e5041930 +``` + #### 下载源码 首先我们下载源码, 下载的库会比较多, 如果没有报错请耐心等待, 建议配置网络代理以便能流畅下载github的代码 diff --git a/scripts/configure.sh b/scripts/configure.sh index d98b6e08..4788cefd 100755 --- a/scripts/configure.sh +++ b/scripts/configure.sh @@ -6,6 +6,8 @@ shift 1 cmake . \ -B build_${build_configure} \ +-DCMAKE_CXX_COMPILER=clang++ \ +-DCMAKE_C_COMPILER=clang \ -DCMAKE_BUILD_TYPE=${build_configure} \ -DCMAKE_INSTALL_PREFIX=build_${build_configure}/install \ -DBOOST_INCLUDE_LIBRARIES="algorithm;variant;optional;fusion;spirit;multiprecision;process;dll" \ From 7ffa3691c7d0a677534386381b60b03e9ceb2b3a Mon Sep 17 00:00:00 2001 From: Zhang Zhimin Date: Tue, 3 Sep 2024 03:27:41 +0800 Subject: [PATCH 2/2] Update llvm and boost (#65) --- prajna/codegen/llvm_codegen.cpp | 9 ++++++--- third_party/boost | 2 +- third_party/llvm-project | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/prajna/codegen/llvm_codegen.cpp b/prajna/codegen/llvm_codegen.cpp index 0afa0e4a..aea3c203 100644 --- a/prajna/codegen/llvm_codegen.cpp +++ b/prajna/codegen/llvm_codegen.cpp @@ -683,7 +683,7 @@ std::shared_ptr LlvmPass(std::shared_ptr ir_module) { JTMB->setCPU(""); JTMB->setRelocationModel(std::nullopt); JTMB->setCodeModel(std::nullopt); - JTMB->setCodeGenOptLevel(llvm::CodeGenOpt::None); + JTMB->setCodeGenOptLevel(llvm::CodeGenOptLevel::None); JTMB->addFeatures(std::vector()); auto TM = JTMB->createTargetMachine(); PRAJNA_ASSERT(TM && TM.get()); @@ -721,9 +721,12 @@ std::shared_ptr LlvmPass(std::shared_ptr ir_module) { llvm::SMDiagnostic err; #ifdef _WIN32 auto uq_llvm_libdevice_module = llvm::parseIRFile( - "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.2\\nvvm\\libdevice\\libdevice.10.bc", err, static_llvm_context); + "C:\\Program Files\\NVIDIA GPU Computing " + "Toolkit\\CUDA\\v12.2\\nvvm\\libdevice\\libdevice.10.bc", + err, static_llvm_context); PRAJNA_ASSERT(uq_llvm_libdevice_module, - "\"C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.2\\nvvm\\libdevice\\libdevice.10.bc\" is not found"); + "\"C:\\Program Files\\NVIDIA GPU Computing " + "Toolkit\\CUDA\\v12.2\\nvvm\\libdevice\\libdevice.10.bc\" is not found"); #else auto uq_llvm_libdevice_module = llvm::parseIRFile( "/usr/local/cuda/nvvm/libdevice/libdevice.10.bc", err, static_llvm_context); diff --git a/third_party/boost b/third_party/boost index da041154..65c1319b 160000 --- a/third_party/boost +++ b/third_party/boost @@ -1 +1 @@ -Subproject commit da041154c6bac1a4aa98254a7d6819059e8ac0b0 +Subproject commit 65c1319bb92fe7a9a4abd588eff5818d9c2bccf9 diff --git a/third_party/llvm-project b/third_party/llvm-project index 76ea62a2..3b5b5c1e 160000 --- a/third_party/llvm-project +++ b/third_party/llvm-project @@ -1 +1 @@ -Subproject commit 76ea62a2735a760545bfa98524e7a658a15268ac +Subproject commit 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff