Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
332fdd1e
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
332fdd1e
编写于
6月 15, 2022
作者:
R
Ruibiao Chen
提交者:
GitHub
6月 15, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactor dynload/port.h (#43431)
* Refactor port.h * Remove some unnecessary code * Fix CI errors
上级
193ab32c
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
173 addition
and
135 deletion
+173
-135
paddle/fluid/operators/detection/sigmoid_focal_loss_op.h
paddle/fluid/operators/detection/sigmoid_focal_loss_op.h
+1
-0
paddle/fluid/platform/macros.h
paddle/fluid/platform/macros.h
+0
-1
paddle/phi/backends/dynload/CMakeLists.txt
paddle/phi/backends/dynload/CMakeLists.txt
+1
-1
paddle/phi/backends/dynload/port.cc
paddle/phi/backends/dynload/port.cc
+161
-0
paddle/phi/backends/dynload/port.h
paddle/phi/backends/dynload/port.h
+10
-133
未找到文件。
paddle/fluid/operators/detection/sigmoid_focal_loss_op.h
浏览文件 @
332fdd1e
...
@@ -14,6 +14,7 @@ limitations under the License. */
...
@@ -14,6 +14,7 @@ limitations under the License. */
#pragma once
#pragma once
#include <algorithm>
#include <algorithm>
#include <cfloat>
#include <limits>
#include <limits>
#include "paddle/fluid/framework/op_registry.h"
#include "paddle/fluid/framework/op_registry.h"
...
...
paddle/fluid/platform/macros.h
浏览文件 @
332fdd1e
...
@@ -13,7 +13,6 @@ See the License for the specific language governing permissions and
...
@@ -13,7 +13,6 @@ See the License for the specific language governing permissions and
limitations under the License. */
limitations under the License. */
#pragma once
#pragma once
#include <cfloat>
// Disable the copy and assignment operator for a class.
// Disable the copy and assignment operator for a class.
#ifndef DISABLE_COPY_AND_ASSIGN
#ifndef DISABLE_COPY_AND_ASSIGN
...
...
paddle/phi/backends/dynload/CMakeLists.txt
浏览文件 @
332fdd1e
cc_library
(
cc_library
(
phi_dynamic_loader
phi_dynamic_loader
SRCS dynamic_loader.cc
SRCS dynamic_loader.cc
port.cc
DEPS enforce glog gflags
)
DEPS enforce glog gflags
)
list
(
list
(
...
...
paddle/phi/backends/dynload/port.cc
0 → 100644
浏览文件 @
332fdd1e
// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <paddle/phi/backends/dynload/port.h>
#include <memory>
#include <stdexcept>
#include <string>
#if !defined(_WIN32)
#include <dlfcn.h> // dladdr
#include <sys/stat.h>
#include <sys/time.h>
#else
#include <numeric> // std::accumulate in msvc
void
*
dlsym
(
void
*
handle
,
const
char
*
symbol_name
)
{
FARPROC
found_symbol
;
found_symbol
=
GetProcAddress
((
HMODULE
)
handle
,
symbol_name
);
if
(
found_symbol
==
NULL
)
{
LOG
(
ERROR
)
<<
"Load symbol "
<<
symbol_name
<<
" failed."
;
throw
std
::
runtime_error
(
std
::
string
(
symbol_name
)
+
" not found."
);
}
return
reinterpret_cast
<
void
*>
(
found_symbol
);
}
void
*
dlopen
(
const
char
*
filename
,
int
flag
)
{
std
::
string
file_name
(
filename
);
HMODULE
hModule
=
LoadLibrary
(
file_name
.
c_str
());
if
(
!
hModule
)
{
if
(
flag
)
{
throw
std
::
runtime_error
(
file_name
+
" not found."
);
}
else
{
return
nullptr
;
}
}
return
reinterpret_cast
<
void
*>
(
hModule
);
}
int
gettimeofday
(
struct
timeval
*
tp
,
void
*
tzp
)
{
time_t
clock
;
struct
tm
tm
;
SYSTEMTIME
wtm
;
GetLocalTime
(
&
wtm
);
tm
.
tm_year
=
wtm
.
wYear
-
1900
;
tm
.
tm_mon
=
wtm
.
wMonth
-
1
;
tm
.
tm_mday
=
wtm
.
wDay
;
tm
.
tm_hour
=
wtm
.
wHour
;
tm
.
tm_min
=
wtm
.
wMinute
;
tm
.
tm_sec
=
wtm
.
wSecond
;
tm
.
tm_isdst
=
-
1
;
clock
=
mktime
(
&
tm
);
tp
->
tv_sec
=
clock
;
tp
->
tv_usec
=
wtm
.
wMilliseconds
*
1000
;
return
(
0
);
}
#endif // !_WIN32
void
ExecShellCommand
(
const
std
::
string
&
cmd
,
std
::
string
*
message
)
{
char
buffer
[
128
];
#if !defined(_WIN32)
std
::
shared_ptr
<
FILE
>
pipe
(
popen
(
cmd
.
c_str
(),
"r"
),
pclose
);
#else
std
::
shared_ptr
<
FILE
>
pipe
(
_popen
(
cmd
.
c_str
(),
"r"
),
_pclose
);
#endif // _WIN32
if
(
!
pipe
)
{
LOG
(
ERROR
)
<<
"error running command: "
<<
cmd
;
return
;
}
while
(
!
feof
(
pipe
.
get
()))
{
if
(
fgets
(
buffer
,
128
,
pipe
.
get
())
!=
nullptr
)
{
*
message
+=
buffer
;
}
}
}
bool
PathExists
(
const
std
::
string
&
path
)
{
#if !defined(_WIN32)
struct
stat
statbuf
;
if
(
stat
(
path
.
c_str
(),
&
statbuf
)
!=
-
1
)
{
if
(
S_ISDIR
(
statbuf
.
st_mode
))
{
return
true
;
}
}
#else
struct
_stat
statbuf
;
if
(
_stat
(
path
.
c_str
(),
&
statbuf
)
!=
-
1
)
{
if
(
S_ISDIR
(
statbuf
.
st_mode
))
{
return
true
;
}
}
#endif // !_WIN32
return
false
;
}
#if !defined(_WIN32)
constexpr
char
kSEP
=
'/'
;
#else
constexpr
char
kSEP
=
'\\'
;
#endif // _WIN32
bool
FileExists
(
const
std
::
string
&
filepath
)
{
#if !defined(_WIN32)
struct
stat
buffer
;
return
(
stat
(
filepath
.
c_str
(),
&
buffer
)
==
0
);
#else
struct
_stat
buffer
;
return
(
_stat
(
filepath
.
c_str
(),
&
buffer
)
==
0
);
#endif // !_WIN32
}
std
::
string
DirName
(
const
std
::
string
&
filepath
)
{
auto
pos
=
filepath
.
rfind
(
kSEP
);
if
(
pos
==
std
::
string
::
npos
)
{
return
""
;
}
return
filepath
.
substr
(
0
,
pos
);
}
void
MkDir
(
const
char
*
path
)
{
std
::
string
path_error
(
path
);
path_error
+=
" mkdir failed!"
;
#if !defined(_WIN32)
if
(
mkdir
(
path
,
0755
))
{
if
(
errno
!=
EEXIST
)
{
throw
std
::
runtime_error
(
path_error
);
}
}
#else
BOOL
return_value
=
CreateDirectory
(
path
,
NULL
);
if
(
!
return_value
)
{
auto
errorno
=
GetLastError
();
if
(
errorno
!=
ERROR_ALREADY_EXISTS
)
{
throw
std
::
runtime_error
(
path_error
);
}
}
#endif // !_WIN32
}
void
MkDirRecursively
(
const
char
*
fullpath
)
{
if
(
*
fullpath
==
'\0'
)
return
;
// empty string
if
(
FileExists
(
fullpath
))
return
;
MkDirRecursively
(
DirName
(
fullpath
).
c_str
());
MkDir
(
fullpath
);
}
paddle/phi/backends/dynload/port.h
浏览文件 @
332fdd1e
...
@@ -14,11 +14,6 @@
...
@@ -14,11 +14,6 @@
#pragma once
#pragma once
#include <time.h>
#include <cstdio>
#include <memory>
#include <stdexcept>
#include <string>
#include <string>
#define GLOG_NO_ABBREVIATED_SEVERITIES // msvc conflict logging with windows.h
#define GLOG_NO_ABBREVIATED_SEVERITIES // msvc conflict logging with windows.h
...
@@ -26,10 +21,8 @@
...
@@ -26,10 +21,8 @@
#if !defined(_WIN32)
#if !defined(_WIN32)
#include <dlfcn.h> // dladdr
#include <dlfcn.h> // dladdr
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/time.h>
#include <algorithm> // std::accumulate
#else
#else
#ifndef NOMINMAX
#ifndef NOMINMAX
#define NOMINMAX // msvc max/min macro conflict with std::min/max
#define NOMINMAX // msvc max/min macro conflict with std::min/max
...
@@ -42,143 +35,27 @@
...
@@ -42,143 +35,27 @@
#include <windows.h>
#include <windows.h>
#include <winsock.h>
#include <winsock.h>
#include <numeric> // std::accumulate in msvc
#ifndef S_ISDIR // windows port for sys/stat.h
#ifndef S_ISDIR // windows port for sys/stat.h
#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR)
#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR)
#endif // S_ISDIR
#endif // S_ISDIR
static
void
*
dlsym
(
void
*
handle
,
const
char
*
symbol_name
)
{
void
*
dlsym
(
void
*
handle
,
const
char
*
symbol_name
);
FARPROC
found_symbol
;
found_symbol
=
GetProcAddress
((
HMODULE
)
handle
,
symbol_name
);
if
(
found_symbol
==
NULL
)
{
LOG
(
ERROR
)
<<
"Load symbol "
<<
symbol_name
<<
" failed."
;
throw
std
::
runtime_error
(
std
::
string
(
symbol_name
)
+
" not found."
);
}
return
reinterpret_cast
<
void
*>
(
found_symbol
);
}
static
void
*
dlopen
(
const
char
*
filename
,
int
flag
)
{
std
::
string
file_name
(
filename
);
HMODULE
hModule
=
LoadLibrary
(
file_name
.
c_str
());
if
(
!
hModule
)
{
if
(
flag
)
{
throw
std
::
runtime_error
(
file_name
+
" not found."
);
}
else
{
return
nullptr
;
}
}
return
reinterpret_cast
<
void
*>
(
hModule
);
}
static
int
gettimeofday
(
struct
timeval
*
tp
,
void
*
tzp
)
{
void
*
dlopen
(
const
char
*
filename
,
int
flag
);
time_t
clock
;
struct
tm
tm
;
SYSTEMTIME
wtm
;
GetLocalTime
(
&
wtm
);
int
gettimeofday
(
struct
timeval
*
tp
,
void
*
tzp
);
tm
.
tm_year
=
wtm
.
wYear
-
1900
;
tm
.
tm_mon
=
wtm
.
wMonth
-
1
;
tm
.
tm_mday
=
wtm
.
wDay
;
tm
.
tm_hour
=
wtm
.
wHour
;
tm
.
tm_min
=
wtm
.
wMinute
;
tm
.
tm_sec
=
wtm
.
wSecond
;
tm
.
tm_isdst
=
-
1
;
clock
=
mktime
(
&
tm
);
tp
->
tv_sec
=
clock
;
tp
->
tv_usec
=
wtm
.
wMilliseconds
*
1000
;
return
(
0
);
}
#endif // !_WIN32
#endif // !_WIN32
static
void
ExecShellCommand
(
const
std
::
string
&
cmd
,
std
::
string
*
message
)
{
void
ExecShellCommand
(
const
std
::
string
&
cmd
,
std
::
string
*
message
);
char
buffer
[
128
];
#if !defined(_WIN32)
std
::
shared_ptr
<
FILE
>
pipe
(
popen
(
cmd
.
c_str
(),
"r"
),
pclose
);
#else
std
::
shared_ptr
<
FILE
>
pipe
(
_popen
(
cmd
.
c_str
(),
"r"
),
_pclose
);
#endif // _WIN32
if
(
!
pipe
)
{
LOG
(
ERROR
)
<<
"error running command: "
<<
cmd
;
return
;
}
while
(
!
feof
(
pipe
.
get
()))
{
if
(
fgets
(
buffer
,
128
,
pipe
.
get
())
!=
nullptr
)
{
*
message
+=
buffer
;
}
}
}
static
bool
PathExists
(
const
std
::
string
&
path
)
{
bool
PathExists
(
const
std
::
string
&
path
);
#if !defined(_WIN32)
struct
stat
statbuf
;
if
(
stat
(
path
.
c_str
(),
&
statbuf
)
!=
-
1
)
{
if
(
S_ISDIR
(
statbuf
.
st_mode
))
{
return
true
;
}
}
#else
struct
_stat
statbuf
;
if
(
_stat
(
path
.
c_str
(),
&
statbuf
)
!=
-
1
)
{
if
(
S_ISDIR
(
statbuf
.
st_mode
))
{
return
true
;
}
}
#endif // !_WIN32
return
false
;
}
// TODO(yuyang18): If the functions below are needed by other files, move them
// TODO(yuyang18): If the functions below are needed by other files, move them
// to paddle::filesystem namespace.
// to paddle::filesystem namespace.
#if !defined(_WIN32)
bool
FileExists
(
const
std
::
string
&
filepath
);
constexpr
char
kSEP
=
'/'
;
#else
constexpr
char
kSEP
=
'\\'
;
#endif // _WIN32
static
bool
FileExists
(
const
std
::
string
&
filepath
)
{
#if !defined(_WIN32)
struct
stat
buffer
;
return
(
stat
(
filepath
.
c_str
(),
&
buffer
)
==
0
);
#else
struct
_stat
buffer
;
return
(
_stat
(
filepath
.
c_str
(),
&
buffer
)
==
0
);
#endif // !_WIN32
}
static
std
::
string
DirName
(
const
std
::
string
&
filepath
)
{
std
::
string
DirName
(
const
std
::
string
&
filepath
);
auto
pos
=
filepath
.
rfind
(
kSEP
);
if
(
pos
==
std
::
string
::
npos
)
{
return
""
;
}
return
filepath
.
substr
(
0
,
pos
);
}
static
void
MkDir
(
const
char
*
path
)
{
std
::
string
path_error
(
path
);
path_error
+=
" mkdir failed!"
;
#if !defined(_WIN32)
if
(
mkdir
(
path
,
0755
))
{
if
(
errno
!=
EEXIST
)
{
throw
std
::
runtime_error
(
path_error
);
}
}
#else
BOOL
return_value
=
CreateDirectory
(
path
,
NULL
);
if
(
!
return_value
)
{
auto
errorno
=
GetLastError
();
if
(
errorno
!=
ERROR_ALREADY_EXISTS
)
{
throw
std
::
runtime_error
(
path_error
);
}
}
#endif // !_WIN32
}
static
void
MkDirRecursively
(
const
char
*
fullpath
)
{
void
MkDir
(
const
char
*
path
);
if
(
*
fullpath
==
'\0'
)
return
;
// empty string
if
(
FileExists
(
fullpath
))
return
;
MkDirRecursively
(
DirName
(
fullpath
).
c_str
());
void
MkDirRecursively
(
const
char
*
fullpath
);
MkDir
(
fullpath
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录