-
Notifications
You must be signed in to change notification settings - Fork 4
/
FoldsCUDA.jl
55 lines (49 loc) · 1.18 KB
/
FoldsCUDA.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
module FoldsCUDA
export CUDAEx, CoalescedCUDAEx, foldx_cuda, transduce_cuda
using CUDA
using CUDA: @allowscalar
using Core: Typeof
using InitialValues: InitialValue, asmonoid
using UnionArrays: UnionArrays, UnionVector
using Transducers:
@return_if_reduced,
Executor,
Map,
Reduced,
Transducer,
Transducers,
combine,
complete,
next,
opcompose,
reduced,
start,
transduce,
unreduced
# TODO: Don't import internals from Transducers:
using Transducers:
AbstractReduction,
DefaultInit,
DefaultInitOf,
EmptyResultError,
IdentityTransducer,
Reduction,
_reducingfunction,
completebasecase,
extract_transducer,
foldl_basecase
include("utils.jl")
include("kernels.jl")
include("unionvalues.jl")
include("shfl.jl")
include("api.jl")
include("introspection.jl")
# Use README as the docstring of the module:
@doc let path = joinpath(dirname(@__DIR__), "README.md")
include_dependency(path)
doc = read(path, String)
doc = replace(doc, r"^```julia"m => "```jldoctest README")
doc = replace(doc, "(https://juliafolds.github.io/FoldsCUDA.jl/dev/examples/)" => "(@ref examples-toc)")
doc
end FoldsCUDA
end