Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Oneflow-Inc
oneflow
提交
5f10ecbf
O
oneflow
项目概览
Oneflow-Inc
/
oneflow
上一次同步 接近 3 年
通知
13
Star
2733
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oneflow
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5f10ecbf
编写于
2月 06, 2018
作者:
W
willzhang4a58
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
force found_cudnn=true
Former-commit-id:
30c0518e
上级
d58118df
变更
17
显示空白变更内容
内联
并排
Showing
17 changed file
with
10 addition
and
71 deletion
+10
-71
CMakeLists.txt
CMakeLists.txt
+0
-1
cmake/oneflow.cmake
cmake/oneflow.cmake
+2
-2
cmake/third_party.cmake
cmake/third_party.cmake
+0
-7
oneflow/core/actor/actor.cpp
oneflow/core/actor/actor.cpp
+3
-8
oneflow/core/common/util.h
oneflow/core/common/util.h
+0
-6
oneflow/core/device/cuda_device_context.h
oneflow/core/device/cuda_device_context.h
+1
-6
oneflow/core/device/cuda_stream_handle.cpp
oneflow/core/device/cuda_stream_handle.cpp
+0
-4
oneflow/core/device/cuda_stream_handle.h
oneflow/core/device/cuda_stream_handle.h
+0
-5
oneflow/core/device/cuda_util.cpp
oneflow/core/device/cuda_util.cpp
+0
-2
oneflow/core/device/cudnn_util.cpp
oneflow/core/device/cudnn_util.cpp
+0
-4
oneflow/core/device/cudnn_util.h
oneflow/core/device/cudnn_util.h
+0
-4
oneflow/core/device/device_context.h
oneflow/core/device/device_context.h
+1
-10
oneflow/core/job/job_conf.proto
oneflow/core/job/job_conf.proto
+1
-1
oneflow/core/job/job_desc.cpp
oneflow/core/job/job_desc.cpp
+0
-8
oneflow/core/kernel/opkernel_test_common.cpp
oneflow/core/kernel/opkernel_test_common.cpp
+1
-1
oneflow/core/kernel/opkernel_test_common.cu
oneflow/core/kernel/opkernel_test_common.cu
+1
-1
oneflow/core/operator/operator.cpp
oneflow/core/operator/operator.cpp
+0
-1
未找到文件。
CMakeLists.txt
浏览文件 @
5f10ecbf
...
...
@@ -4,7 +4,6 @@ cmake_minimum_required(VERSION 3.5)
option
(
BUILD_THIRD_PARTY
"Build third party or oneflow"
OFF
)
option
(
BUILD_RDMA
""
ON
)
option
(
BUILD_CUDA
""
ON
)
option
(
BUILD_CUDNN
""
ON
)
# Project
if
(
BUILD_THIRD_PARTY
)
...
...
cmake/oneflow.cmake
浏览文件 @
5f10ecbf
...
...
@@ -130,8 +130,8 @@ endforeach()
# build test
if
(
BUILD_TESTING
)
if
(
NOT BUILD_CUDA
or NOT BUILD_CUDNN
)
message
(
FATAL_ERROR
"BUILD_TESTING without BUILD_CUDA
and BUILD_CUDNN
"
)
if
(
NOT BUILD_CUDA
)
message
(
FATAL_ERROR
"BUILD_TESTING without BUILD_CUDA"
)
endif
()
oneflow_add_executable
(
oneflow_testexe
${
of_all_test_cc
}
)
target_link_libraries
(
oneflow_testexe
${
of_libs
}
${
oneflow_third_party_libs
}
)
...
...
cmake/third_party.cmake
浏览文件 @
5f10ecbf
...
...
@@ -27,14 +27,7 @@ if (BUILD_CUDA)
foreach
(
extra_cuda_lib
${
extra_cuda_libs
}
)
list
(
APPEND CUDA_LIBRARIES
${
cuda_lib_dir
}
/
${
extra_cuda_lib
}
)
endforeach
()
endif
()
if
(
BUILD_CUDNN
)
if
(
NOT BUILD_CUDA
)
message
(
FATAL_ERROR
"BUILD_CUDNN without BUILD_CUDA"
)
endif
()
find_package
(
CuDNN REQUIRED
)
add_definitions
(
-DWITH_CUDNN
)
endif
()
if
(
NOT WIN32
)
...
...
oneflow/core/actor/actor.cpp
浏览文件 @
5f10ecbf
...
...
@@ -70,14 +70,9 @@ void Actor::InitDeviceCtx(const ThreadCtx&) {
}
#ifdef WITH_CUDA
case
DeviceType
::
kGPU
:
{
device_ctx_
.
reset
(
new
CudaDeviceCtx
(
NewWorkStreamId
(),
cuda_handle_
.
cuda_stream
(),
cuda_handle_
.
cublas_handle
()
#ifdef WITH_CUDNN
,
cuda_handle_
.
cudnn_handle
()
#endif
));
device_ctx_
.
reset
(
new
CudaDeviceCtx
(
NewWorkStreamId
(),
cuda_handle_
.
cuda_stream
(),
cuda_handle_
.
cublas_handle
(),
cuda_handle_
.
cudnn_handle
()));
break
;
}
#endif
...
...
oneflow/core/common/util.h
浏览文件 @
5f10ecbf
...
...
@@ -163,12 +163,6 @@ inline double GetCurTime() {
size_t
GetAvailableCpuMemSize
();
inline
void
CheckUseCudnn
(
bool
val
)
{
#ifndef WITH_CUDNN
CHECK_EQ
(
val
,
false
)
<<
"Please compile ONEFLOW with CUDNN"
;
#endif
}
}
// namespace oneflow
#endif // ONEFLOW_CORE_COMMON_UTIL_H_
oneflow/core/device/cuda_device_context.h
浏览文件 @
5f10ecbf
...
...
@@ -14,19 +14,14 @@ class CudaDeviceCtx final : public DeviceCtx {
~
CudaDeviceCtx
()
=
default
;
CudaDeviceCtx
(
int64_t
work_stream_id
,
const
cudaStream_t
*
cuda_stream
,
const
cublasHandle_t
*
cublas_handle
=
nullptr
#ifdef WITH_CUDNN
,
const
cublasHandle_t
*
cublas_handle
=
nullptr
,
const
cudnnHandle_t
*
cudnn_handle
=
nullptr
#endif
)
{
set_work_stream_id
(
work_stream_id
);
set_cuda_stream
(
cuda_stream
);
set_cublas_handle
(
cublas_handle
);
#ifdef WITH_CUDNN
set_cudnn_handle
(
cudnn_handle
);
#endif
}
void
AddCallBack
(
std
::
function
<
void
()
>
callback
)
const
override
;
...
...
oneflow/core/device/cuda_stream_handle.cpp
浏览文件 @
5f10ecbf
...
...
@@ -22,7 +22,6 @@ const cublasHandle_t* CudaStreamHandle::cublas_handle() {
return
cublas_handle_
.
get
();
}
#ifdef WITH_CUDNN
const
cudnnHandle_t
*
CudaStreamHandle
::
cudnn_handle
()
{
if
(
!
cudnn_handle_
)
{
cudnn_handle_
.
reset
(
new
cudnnHandle_t
);
...
...
@@ -31,12 +30,9 @@ const cudnnHandle_t* CudaStreamHandle::cudnn_handle() {
}
return
cudnn_handle_
.
get
();
}
#endif // WITH_CUDNN
CudaStreamHandle
::~
CudaStreamHandle
()
{
#ifdef WITH_CUDNN
if
(
cudnn_handle_
)
{
CudaCheck
(
cudnnDestroy
(
*
cudnn_handle_
));
}
#endif // WITH_CUDNN
if
(
cublas_handle_
)
{
CudaCheck
(
cublasDestroy
(
*
cublas_handle_
));
}
if
(
cuda_stream_
)
{
CudaCheck
(
cudaStreamDestroy
(
*
cuda_stream_
));
}
}
...
...
oneflow/core/device/cuda_stream_handle.h
浏览文件 @
5f10ecbf
...
...
@@ -14,19 +14,14 @@ class CudaStreamHandle final {
const
cudaStream_t
*
cuda_stream
();
const
cublasHandle_t
*
cublas_handle
();
#ifdef WITH_CUDNN
const
cudnnHandle_t
*
cudnn_handle
();
#endif
~
CudaStreamHandle
();
private:
std
::
unique_ptr
<
cudaStream_t
>
cuda_stream_
;
std
::
unique_ptr
<
cublasHandle_t
>
cublas_handle_
;
#ifdef WITH_CUDNN
std
::
unique_ptr
<
cudnnHandle_t
>
cudnn_handle_
;
#endif
};
#endif // WITH_CUDA
...
...
oneflow/core/device/cuda_util.cpp
浏览文件 @
5f10ecbf
...
...
@@ -59,12 +59,10 @@ void CudaCheck(cudaError_t error) {
CHECK_EQ
(
error
,
cudaSuccess
)
<<
cudaGetErrorString
(
error
);
}
#ifdef WITH_CUDNN
template
<
>
void
CudaCheck
(
cudnnStatus_t
error
)
{
CHECK_EQ
(
error
,
CUDNN_STATUS_SUCCESS
)
<<
cudnnGetErrorString
(
error
);
}
#endif // WITH_CUDNN
template
<
>
void
CudaCheck
(
cublasStatus_t
error
)
{
...
...
oneflow/core/device/cudnn_util.cpp
浏览文件 @
5f10ecbf
#ifdef WITH_CUDNN
#include "oneflow/core/device/cuda_util.h"
#include "oneflow/core/device/cudnn_util.h"
...
...
@@ -45,5 +43,3 @@ CudnnFilterDesc::CudnnFilterDesc(DataType data_type, const Shape& shape)
}
}
// namespace oneflow
#endif // WITH_CUDNN
oneflow/core/device/cudnn_util.h
浏览文件 @
5f10ecbf
#ifndef ONEFLOW_CORE_DEVICE_CUDNN_UTIL_H_
#define ONEFLOW_CORE_DEVICE_CUDNN_UTIL_H_
#ifdef WITH_CUDNN
#include "cudnn.h"
#include "oneflow/core/common/data_type.h"
#include "oneflow/core/common/shape.h"
...
...
@@ -63,6 +61,4 @@ class CudnnFilterDesc final {
}
// namespace oneflow
#endif // WITH_CUDNN
#endif // ONEFLOW_CORE_DEVICE_CUDNN_UTIL_H_
oneflow/core/device/device_context.h
浏览文件 @
5f10ecbf
...
...
@@ -15,9 +15,7 @@ class DeviceCtx {
#ifdef WITH_CUDA
const
cudaStream_t
&
cuda_stream
()
const
{
return
*
cuda_stream_
;
}
const
cublasHandle_t
&
cublas_handle
()
const
{
return
*
cublas_handle_
;
}
#ifdef WITH_CUDNN
const
cudnnHandle_t
&
cudnn_handle
()
const
{
return
*
cudnn_handle_
;
}
#endif
#endif
virtual
void
AddCallBack
(
std
::
function
<
void
()
>
)
const
=
0
;
...
...
@@ -28,11 +26,8 @@ class DeviceCtx {
#ifdef WITH_CUDA
,
cuda_stream_
(
nullptr
),
cublas_handle_
(
nullptr
)
#ifdef WITH_CUDNN
,
cublas_handle_
(
nullptr
),
cudnn_handle_
(
nullptr
)
#endif
#endif
{
}
...
...
@@ -42,9 +37,7 @@ class DeviceCtx {
#ifdef WITH_CUDA
void
set_cuda_stream
(
const
cudaStream_t
*
val
)
{
cuda_stream_
=
val
;
}
void
set_cublas_handle
(
const
cublasHandle_t
*
val
)
{
cublas_handle_
=
val
;
}
#ifdef WITH_CUDNN
void
set_cudnn_handle
(
const
cudnnHandle_t
*
val
)
{
cudnn_handle_
=
val
;
}
#endif
#endif
private:
...
...
@@ -52,10 +45,8 @@ class DeviceCtx {
#ifdef WITH_CUDA
const
cudaStream_t
*
cuda_stream_
;
const
cublasHandle_t
*
cublas_handle_
;
#ifdef WITH_CUDNN
const
cudnnHandle_t
*
cudnn_handle_
;
#endif
#endif
};
}
// namespace oneflow
...
...
oneflow/core/job/job_conf.proto
浏览文件 @
5f10ecbf
...
...
@@ -44,7 +44,7 @@ message JobConf {
optional
string
model_load_snapshot_path
=
7
[
default
=
""
];
optional
int32
max_data_id_length
=
8
[
default
=
0
];
optional
bool
use_rdma
=
9
[
default
=
false
];
optional
bool
use_cudnn_on_gpu
=
10
;
optional
bool
use_cudnn_on_gpu
=
10
[
default
=
true
]
;
optional
DataType
default_data_type
=
100
[
default
=
kFloat
];
// kFloat or kDouble
optional
int64
piece_num_of_experiment_phase
=
101
[
default
=
100
];
...
...
oneflow/core/job/job_desc.cpp
浏览文件 @
5f10ecbf
...
...
@@ -75,14 +75,6 @@ JobDesc::JobDesc(const JobDescProto& job_desc) {
#ifndef WITH_RDMA
CHECK_EQ
(
job_conf_
.
use_rdma
(),
false
)
<<
"Please compile ONEFLOW with RDMA"
;
#endif
if
(
job_conf_
.
has_use_cudnn_on_gpu
()
==
false
)
{
#ifdef WITH_CUDNN
job_conf_
.
set_use_cudnn_on_gpu
(
true
);
#else
job_conf_
.
set_use_cudnn_on_gpu
(
false
);
#endif
}
CheckUseCudnn
(
job_conf_
.
use_cudnn_on_gpu
());
int64_t
piece_experiment
=
job_conf_
.
piece_num_of_experiment_phase
();
if
(
job_conf_
.
has_train_conf
())
{
const
TrainConf
&
train_conf
=
job_conf_
.
train_conf
();
...
...
oneflow/core/kernel/opkernel_test_common.cpp
浏览文件 @
5f10ecbf
...
...
@@ -5,7 +5,7 @@
namespace
oneflow
{
#if defined(WITH_CUDA)
&& defined(WITH_CUDNN)
#if defined(WITH_CUDA)
namespace
test
{
...
...
oneflow/core/kernel/opkernel_test_common.cu
浏览文件 @
5f10ecbf
...
...
@@ -4,7 +4,7 @@
namespace
oneflow
{
#if defined(WITH_CUDA)
&& defined(WITH_CUDNN)
#if defined(WITH_CUDA)
namespace
test
{
...
...
oneflow/core/operator/operator.cpp
浏览文件 @
5f10ecbf
...
...
@@ -21,7 +21,6 @@ void Operator::InitFromOpConf(const OperatorConf& op_conf) {
if
(
op_conf_
.
has_use_cudnn_on_gpu
()
==
false
)
{
op_conf_
.
set_use_cudnn_on_gpu
(
JobDesc
::
Singleton
()
->
UseCudnn
());
}
CheckUseCudnn
(
op_conf_
.
use_cudnn_on_gpu
());
InitFromOpConf
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录