Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
4c964abd
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
4c964abd
编写于
6月 29, 2020
作者:
W
Wilber
提交者:
GitHub
6月 29, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support build on arm. test=develop (#25212)
上级
f78e161e
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
27 addition
and
5 deletion
+27
-5
CMakeLists.txt
CMakeLists.txt
+7
-0
cmake/external/openblas.cmake
cmake/external/openblas.cmake
+3
-0
cmake/flags.cmake
cmake/flags.cmake
+1
-1
paddle/fluid/operators/search_compute.h
paddle/fluid/operators/search_compute.h
+10
-0
paddle/fluid/platform/cpu_info.cc
paddle/fluid/platform/cpu_info.cc
+1
-1
paddle/fluid/platform/cpu_info.h
paddle/fluid/platform/cpu_info.h
+1
-1
python/setup.py.in
python/setup.py.in
+4
-2
未找到文件。
CMakeLists.txt
浏览文件 @
4c964abd
...
...
@@ -107,6 +107,7 @@ option(SANITIZER_TYPE "Choose the type of sanitizer, options are: Address, Leak,
option
(
WITH_LITE
"Compile Paddle Fluid with Lite Engine"
OFF
)
option
(
WITH_NCCL
"Compile PaddlePaddle with NCCL support"
ON
)
option
(
WITH_CRYPTO
"Compile PaddlePaddle with crypto support"
ON
)
option
(
WITH_ARM
"Compile PaddlePaddle with arm support"
OFF
)
# PY_VERSION
if
(
NOT PY_VERSION
)
...
...
@@ -213,6 +214,12 @@ if(WITH_AMD_GPU)
include
(
hip
)
endif
(
WITH_AMD_GPU
)
if
(
WITH_ARM
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-fPIC"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fPIC"
)
add_definitions
(
-DPADDLE_WITH_ARM
)
endif
()
set
(
PADDLE_PYTHON_BUILD_DIR
"
${
CMAKE_CURRENT_BINARY_DIR
}
/python/build"
)
set
(
CMAKE_CXX_FLAGS_RELWITHDEBINFO
"-O3 -g -DNDEBUG"
)
...
...
cmake/external/openblas.cmake
浏览文件 @
4c964abd
...
...
@@ -19,6 +19,9 @@ SET(CBLAS_SOURCE_DIR ${THIRD_PARTY_PATH}/openblas/src/extern_openblas)
SET
(
CBLAS_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/openblas
)
SET
(
CBLAS_REPOSITORY https://github.com/xianyi/OpenBLAS.git
)
SET
(
CBLAS_TAG v0.3.7
)
IF
(
WITH_ARM
)
SET
(
CBLAS_TAG v0.2.18
)
ENDIF
()
cache_third_party
(
extern_openblas
REPOSITORY
${
CBLAS_REPOSITORY
}
TAG
${
CBLAS_TAG
}
...
...
cmake/flags.cmake
浏览文件 @
4c964abd
...
...
@@ -187,7 +187,7 @@ set(GPU_COMMON_FLAGS
-Wno-error=unused-function
# Warnings in Numpy Header.
-Wno-error=array-bounds
# Warnings in Eigen::array
)
if
(
NOT WITH_NV_JETSON
)
if
(
NOT WITH_NV_JETSON
AND NOT WITH_ARM
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-m64"
)
endif
()
endif
(
NOT WIN32
)
...
...
paddle/fluid/operators/search_compute.h
浏览文件 @
4c964abd
...
...
@@ -14,7 +14,9 @@ limitations under the License. */
#pragma once
#if !defined(PADDLE_WITH_ARM)
#include <immintrin.h>
#endif
#include <cfloat>
#include <cmath>
#include <cstring>
...
...
@@ -72,6 +74,8 @@ void call_gemm_batched(const framework::ExecutionContext& ctx,
}
}
#if !defined(PADDLE_WITH_ARM)
#define __m256x __m256
static
const
unsigned
int
AVX_STEP_SIZE
=
8
;
...
...
@@ -94,6 +98,8 @@ static const unsigned int SSE_CUT_LEN_MASK = 1U;
#define _mm_store_px _mm_storeu_ps
#define _mm_load1_px _mm_load1_ps
#endif
template
<
typename
T
>
inline
void
axpy
(
const
T
*
x
,
T
*
y
,
size_t
len
,
const
T
alpha
)
{
unsigned
int
jjj
,
lll
;
...
...
@@ -108,6 +114,8 @@ inline void axpy(const T* x, T* y, size_t len, const T alpha) {
_mm256_add_px
(
_mm256_load_px
(
y
+
jjj
),
_mm256_mul_px
(
mm_alpha
,
_mm256_load_px
(
x
+
jjj
))));
}
#elif defined(PADDLE_WITH_ARM)
PADDLE_THROW
(
platform
::
errors
::
Unimplemented
(
"axpy is not supported"
));
#else
lll
=
len
&
~
SSE_CUT_LEN_MASK
;
__m128x
mm_alpha
=
_mm_load1_px
(
&
alpha
);
...
...
@@ -135,6 +143,8 @@ inline void axpy_noadd(const T* x, T* y, size_t len, const T alpha) {
for
(
jjj
=
0
;
jjj
<
lll
;
jjj
+=
AVX_STEP_SIZE
)
{
_mm256_store_px
(
y
+
jjj
,
_mm256_mul_px
(
mm_alpha
,
_mm256_load_px
(
x
+
jjj
)));
}
#elif defined(PADDLE_WITH_ARM)
PADDLE_THROW
(
platform
::
errors
::
Unimplemented
(
"axpy_noadd is not supported"
));
#else
lll
=
len
&
~
SSE_CUT_LEN_MASK
;
__m128x
mm_alpha
=
_mm_load1_px
(
&
alpha
);
...
...
paddle/fluid/platform/cpu_info.cc
浏览文件 @
4c964abd
...
...
@@ -139,7 +139,7 @@ bool MayIUse(const cpu_isa_t cpu_isa) {
if
(
cpu_isa
==
isa_any
)
{
return
true
;
}
else
{
#if
ndef WITH_NV_JETSON
#if
!defined(WITH_NV_JETSON) && !defined(PADDLE_WITH_ARM)
int
reg
[
4
];
cpuid
(
reg
,
0
);
int
nIds
=
reg
[
0
];
...
...
paddle/fluid/platform/cpu_info.h
浏览文件 @
4c964abd
...
...
@@ -40,7 +40,7 @@ limitations under the License. */
#ifdef _WIN32
#define cpuid(reg, x) __cpuidex(reg, x, 0)
#else
#if
ndef WITH_NV_JETSON
#if
!defined(WITH_NV_JETSON) && !defined(PADDLE_WITH_ARM)
#include <cpuid.h>
inline
void
cpuid
(
int
reg
[
4
],
int
x
)
{
__cpuid_count
(
x
,
0
,
reg
[
0
],
reg
[
1
],
reg
[
2
],
reg
[
3
]);
...
...
python/setup.py.in
浏览文件 @
4c964abd
...
...
@@ -6,6 +6,7 @@ import shutil
import sys
import fnmatch
import errno
import platform
from contextlib import contextmanager
from setuptools import Command
...
...
@@ -310,8 +311,9 @@ if '${CMAKE_BUILD_TYPE}' == 'Release':
command = "install_name_tool -id \"@loader_path/../libs/\" ${PADDLE_BINARY_DIR}/python/paddle/fluid/${FLUID_CORE_NAME}" + '.so'
else:
command = "patchelf --set-rpath '$ORIGIN/../libs/' ${PADDLE_BINARY_DIR}/python/paddle/fluid/${FLUID_CORE_NAME}" + '.so'
if os.system(command) != 0:
raise Exception("patch ${FLUID_CORE_NAME}.%s failed, command: %s" % (ext_name, command))
if platform.machine() != 'aarch64':
if os.system(command) != 0:
raise Exception("patch ${FLUID_CORE_NAME}.%s failed, command: %s" % (ext_name, command))
ext_modules = [Extension('_foo', ['stub.cc'])]
if os.name == 'nt':
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录