Skip to content
This repository was archived by the owner on Mar 12, 2021. It is now read-only.

Commit f8e6057

Browse files
committed
Don't directly include inner wrappers again .
1 parent f135ef4 commit f8e6057

File tree

7 files changed

+32
-31
lines changed

7 files changed

+32
-31
lines changed

res/wrap/wrap.jl

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ using Crayons
99

1010
using Clang
1111

12-
function wrap(name, headers...; library="lib$name()", defines=[])
12+
function wrap(name, headers...; wrapped_headers=headers, library="lib$name()", defines=[])
1313
include_dirs = map(dir->joinpath(dir, "include"), find_toolkit())
1414
filter!(isdir, include_dirs)
1515

@@ -26,13 +26,20 @@ function wrap(name, headers...; library="lib$name()", defines=[])
2626
output_file = "lib$(name).jl"
2727
common_file = "lib$(name)_common.jl"
2828

29+
# only wrap headers that are wanted, and make sure we only process each header once
30+
included_from = Dict()
31+
function wrap_header(root, current)
32+
return any(header->endswith(current, header), wrapped_headers) &&
33+
get!(included_from, current, root) == root
34+
end
35+
2936
context = init(;
3037
headers = [headers...],
3138
output_file = output_file,
3239
common_file = common_file,
3340
clang_includes = [include_dirs..., CLANG_INCLUDE],
3441
clang_args = clang_args,
35-
header_wrapped = (root, current)->root == current,
42+
header_wrapped = wrap_header,
3643
header_library = x->library,
3744
clang_diagnostics = true,
3845
)
@@ -503,7 +510,8 @@ function main()
503510
process(name, headers...; kwargs...)
504511
end
505512

506-
process_if_existing("cublas", "cublas_v2.h", "cublas_api.h", "cublasXt.h";
513+
process_if_existing("cublas", "cublas_v2.h", "cublasXt.h";
514+
wrapped_headers=["cublas_v2.h", "cublas_api.h", "cublasXt.h"],
507515
defines=["CUBLASAPI"=>""])
508516

509517
process_if_existing("cufft", "cufft.h")
@@ -512,11 +520,13 @@ function main()
512520

513521
process_if_existing("cusparse", "cusparse.h")
514522

515-
process_if_existing("cusolver", "cusolver_common.h", "cusolverDn.h", "cusolverSp.h")
523+
process_if_existing("cusolver", "cusolverDn.h", "cusolverSp.h";
524+
wrapped_headers=["cusolver_common.h", "cusolverDn.h", "cusolverSp.h"])
516525

517526
process_if_existing("cudnn", "cudnn.h")
518527

519-
process_if_existing("cutensor", "cutensor.h", "cutensor/types.h")
528+
process_if_existing("cutensor", "cutensor.h";
529+
wrapped_headers=["cutensor.h", "cutensor/types.h"])
520530
end
521531

522532
if abspath(PROGRAM_FILE) == @__FILE__

src/blas/libcublas.jl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
# Julia wrapper for header: cublas_v2.h
22
# Automatically generated using Clang.jl
33

4-
# Julia wrapper for header: cublas_api.h
5-
# Automatically generated using Clang.jl
6-
74

85
@checked function cublasCreate_v2(handle)
96
initialize_api()

src/dnn/libcudnn.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1183,7 +1183,7 @@ end
11831183
(cudnnHandle_t, cudnnBatchNormMode_t, Ptr{Cvoid}, Ptr{Cvoid},
11841184
cudnnTensorDescriptor_t, CuPtr{Cvoid}, cudnnTensorDescriptor_t,
11851185
CuPtr{Cvoid}, cudnnTensorDescriptor_t, CuPtr{Cvoid}, CuPtr{Cvoid},
1186-
Ptr{Cvoid}, Ptr{Cvoid}, Cdouble),
1186+
CuPtr{Cvoid}, CuPtr{Cvoid}, Cdouble),
11871187
handle, mode, alpha, beta, xDesc, x, yDesc, y, bnScaleBiasMeanVarDesc,
11881188
bnScale, bnBias, estimatedMean, estimatedVariance, epsilon)
11891189
end

src/solver/libcusolver.jl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Julia wrapper for header: cusolver_common.h
1+
# Julia wrapper for header: cusolverDn.h
22
# Automatically generated using Clang.jl
33

44

@@ -13,9 +13,6 @@ end
1313
(Ptr{Cint},),
1414
version)
1515
end
16-
# Julia wrapper for header: cusolverDn.h
17-
# Automatically generated using Clang.jl
18-
1916

2017
@checked function cusolverDnCreate(handle)
2118
initialize_api()

src/solver/libcusolver_common.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@ const CUSOLVER_VER_MINOR = 3
66
const CUSOLVER_VER_PATCH = 0
77
const CUSOLVER_VER_BUILD = 89
88
const CUSOLVER_VERSION = CUSOLVER_VER_MAJOR * 1000 + CUSOLVER_VER_MINOR * 100 + CUSOLVER_VER_PATCH
9+
const cusolverDnContext = Cvoid
10+
const cusolverDnHandle_t = Ptr{cusolverDnContext}
11+
const syevjInfo = Cvoid
12+
const syevjInfo_t = Ptr{syevjInfo}
13+
const gesvdjInfo = Cvoid
14+
const gesvdjInfo_t = Ptr{gesvdjInfo}
15+
const cusolverDnIRSParams = Cvoid
16+
const cusolverDnIRSParams_t = Ptr{cusolverDnIRSParams}
17+
const cusolverDnIRSInfos = Cvoid
18+
const cusolverDnIRSInfos_t = Ptr{cusolverDnIRSInfos}
919
const cusolver_int_t = Cint
1020

1121
@cenum cusolverStatus_t::UInt32 begin
@@ -67,16 +77,6 @@ end
6777
end
6878

6979

70-
const cusolverDnContext = Cvoid
71-
const cusolverDnHandle_t = Ptr{cusolverDnContext}
72-
const syevjInfo = Cvoid
73-
const syevjInfo_t = Ptr{syevjInfo}
74-
const gesvdjInfo = Cvoid
75-
const gesvdjInfo_t = Ptr{gesvdjInfo}
76-
const cusolverDnIRSParams = Cvoid
77-
const cusolverDnIRSParams_t = Ptr{cusolverDnIRSParams}
78-
const cusolverDnIRSInfos = Cvoid
79-
const cusolverDnIRSInfos_t = Ptr{cusolverDnIRSInfos}
8080
const cusolverSpContext = Cvoid
8181
const cusolverSpHandle_t = Ptr{cusolverSpContext}
8282
const csrqrInfo = Cvoid

src/tensor/libcutensor.jl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,3 @@ end
165165
function cutensorGetCudartVersion()
166166
@runtime_ccall((:cutensorGetCudartVersion, libcutensor()), Csize_t, ())
167167
end
168-
# Julia wrapper for header: types.h
169-
# Automatically generated using Clang.jl
170-

src/tensor/libcutensor_common.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,21 +82,21 @@ end
8282

8383

8484
struct cutensorHandle_t
85-
fields::NTuple{512, Cint}
85+
fields::NTuple{512, Int64}
8686
end
8787

8888
struct cutensorTensorDescriptor_t
89-
fields::NTuple{64, Cint}
89+
fields::NTuple{64, Int64}
9090
end
9191

9292
struct cutensorContractionDescriptor_t
93-
fields::NTuple{256, Cint}
93+
fields::NTuple{256, Int64}
9494
end
9595

9696
struct cutensorContractionPlan_t
97-
fields::NTuple{640, Cint}
97+
fields::NTuple{640, Int64}
9898
end
9999

100100
struct cutensorContractionFind_t
101-
fields::NTuple{64, Cint}
101+
fields::NTuple{64, Int64}
102102
end

0 commit comments

Comments
 (0)