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

Add matmul API #629

Draft
wants to merge 35 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
cdadcbf
Add matmul API
thomasfaingnaert Apr 19, 2020
6561ad7
Add benchmark scripts and results
thomasfaingnaert Apr 25, 2020
4fe49e0
Cleanup
thomasfaingnaert Apr 25, 2020
ca01baf
Fix performance regression
thomasfaingnaert Apr 25, 2020
8911e98
Disable verification in CUTLASS profiles
thomasfaingnaert Apr 25, 2020
899edb5
Set kernel names directly
thomasfaingnaert Apr 25, 2020
c2d52ee
Add generic_matmul FP32 benchmark
thomasfaingnaert Apr 29, 2020
6b8562d
Remove output files
thomasfaingnaert Apr 29, 2020
df4ddc2
Add generic_matmul FP16 benchmark
thomasfaingnaert Apr 29, 2020
62d9b47
chmod +x
thomasfaingnaert Apr 29, 2020
d5ae922
Add generic plots to legend
thomasfaingnaert May 3, 2020
f3325fd
Merge branch 'master' into tf/matmul-kernel
thomasfaingnaert May 25, 2020
016c86b
Use linearise in layout
thomasfaingnaert May 25, 2020
be21dfa
Reintroduce workspace_size
thomasfaingnaert May 25, 2020
11edd5e
Use linearise(...) in operator
thomasfaingnaert May 25, 2020
3f64767
Split translate function
thomasfaingnaert May 25, 2020
2acd20b
Revert "Split translate function"
thomasfaingnaert May 25, 2020
968d72c
Revert "Reintroduce workspace_size"
thomasfaingnaert May 25, 2020
ee13ad8
Add components for complex matmul
thomasfaingnaert May 27, 2020
c709daf
Add test for complex matmul
thomasfaingnaert May 27, 2020
e9b9c5c
Reduce test set size
thomasfaingnaert May 27, 2020
a0d1d28
Add scripts to profile complex CUTLASS
thomasfaingnaert May 27, 2020
8ce4dab
Add dual op
thomasfaingnaert May 27, 2020
340e791
Add translate variant for offset
thomasfaingnaert May 29, 2020
1ca56c4
Revert "Add translate variant for offset"
thomasfaingnaert May 29, 2020
b33cbce
Remove explicit vectorisation
thomasfaingnaert May 29, 2020
2298f57
Revert "Remove explicit vectorisation"
thomasfaingnaert May 30, 2020
c93cf4d
Fix vectorisation
thomasfaingnaert May 30, 2020
47710e2
Revert "Fix vectorisation"
thomasfaingnaert May 30, 2020
356ff58
Revert "Merge branch 'master' into tf/matmul-kernel"
thomasfaingnaert May 30, 2020
1ff1894
Fixes
thomasfaingnaert May 30, 2020
5b066e0
Add more plots
thomasfaingnaert May 30, 2020
48d6a09
Add generic scripts
thomasfaingnaert May 30, 2020
43c645f
Add dual plots
thomasfaingnaert May 30, 2020
9cb4b3c
Add translate variant for offset
thomasfaingnaert May 29, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ julia:1.4:
- .test
tags:
- nvidia
- sm_70
- sm_75
variables:
CI_THOROUGH: 'true'

Expand All @@ -36,11 +36,12 @@ julia:1.4-debug:
- .test
tags:
- nvidia
- sm_70
- sm_75
variables:
CI_THOROUGH: 'true'
CI_CLONE_ARGS: '-b v1.4.0'
CI_BUILD_ARGS: 'BINARYBUILDER_LLVM_ASSERTS=1 debug'
allow_failure: true

julia:nightly:
extends:
Expand Down
91 changes: 68 additions & 23 deletions Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ version = "1.0.1"
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

[[BinaryProvider]]
deps = ["Libdl", "Logging", "SHA"]
git-tree-sha1 = "428e9106b1ff27593cbd979afac9b45b82372b8c"
deps = ["Libdl", "SHA"]
git-tree-sha1 = "5b08ed6036d9d3f0ee6369410b830f8873d4024c"
uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232"
version = "0.5.9"
version = "0.5.8"

[[CEnum]]
git-tree-sha1 = "1b77a77c3b28e0b3f413f7567c9bb8dd9bdccd14"
git-tree-sha1 = "62847acab40e6855a9b5905ccb99c2b5cf6b3ebb"
uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82"
version = "0.3.0"
version = "0.2.0"

[[CUDAapi]]
deps = ["Libdl", "Logging"]
Expand All @@ -28,15 +28,32 @@ version = "4.0.0"

[[CUDAdrv]]
deps = ["CEnum", "CUDAapi", "Printf"]
git-tree-sha1 = "f56bbf18c86bcff7a961a32a4947a5abb2963a29"
git-tree-sha1 = "e650cbaee92b60433313157926b1e80d0c3a0e2e"
uuid = "c5f51814-7f29-56b8-a69c-e4d8f6be1fde"
version = "6.3.0"
version = "6.2.2"

[[Cassette]]
git-tree-sha1 = "f6a148cadd38ba328bd2c03442037ef801a6aa05"
uuid = "7057c7e9-c182-5462-911a-8362d720325c"
version = "0.3.1"

[[CodeTracking]]
deps = ["InteractiveUtils", "UUIDs"]
git-tree-sha1 = "0becdab7e6fbbcb7b88d8de5b72e5bb2f28239f3"
uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2"
version = "0.5.8"

[[Cthulhu]]
deps = ["CodeTracking", "InteractiveUtils", "REPL", "Unicode"]
git-tree-sha1 = "a4849ec61df9659423cc63b298ed895904ee9743"
uuid = "f68482b8-f384-11e8-15f7-abe071a5a75f"
version = "1.0.2"

[[DataStructures]]
deps = ["InteractiveUtils", "OrderedCollections"]
git-tree-sha1 = "7d7578b00789cf16c5f68fad71868e773edd58a2"
git-tree-sha1 = "4dead20a1606a60292529023d6eac18a1ef6432e"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.17.16"
version = "0.17.12"

[[Dates]]
deps = ["Printf"]
Expand All @@ -47,29 +64,36 @@ deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"

[[ExprTools]]
git-tree-sha1 = "6f0517056812fd6aa3af23d4b70d5325a2ae4e95"
git-tree-sha1 = "08c1f74d9ad03acf0ee84c12c9e665ab1a9a6e33"
uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04"
version = "0.1.1"
version = "0.1.0"

[[GPUCompiler]]
deps = ["DataStructures", "InteractiveUtils", "LLVM", "Libdl", "TimerOutputs", "UUIDs"]
git-tree-sha1 = "fa8dafad0ce15cfee2fa51e33ad4a743c1abdcca"
repo-rev = "2bb7f5c5224a6ff25ddccf910936ebc0b2a65273"
repo-url = "https://github.com/JuliaGPU/GPUCompiler.jl.git"
deps = ["Cthulhu", "DataStructures", "InteractiveUtils", "LLVM", "Libdl", "TimerOutputs"]
git-tree-sha1 = "96e13df51390dd81625fd29857d53331dadbf13e"
repo-rev = "master"
repo-url = "https://github.com/JuliaGPU/GPUCompiler.jl"
uuid = "61eb1bfa-7361-4325-ad38-22787b887f55"
version = "0.2.0"
version = "0.1.0"

[[GPUifyLoops]]
deps = ["Cassette", "Requires", "StaticArrays"]
git-tree-sha1 = "671b3b85510f3833c05f3846b3019edc131ab03d"
uuid = "ba82f77b-6841-5d2e-bd9f-4daf811aec27"
version = "0.2.9"

[[InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"

[[LLVM]]
deps = ["CEnum", "Libdl", "Printf", "Unicode"]
git-tree-sha1 = "93d2e1e960fe47db1a9015e86fad1d47cf67cf59"
git-tree-sha1 = "b6b86801ae2f2682e0a4889315dc76b68db2de71"
uuid = "929cbde3-209d-540e-8aea-75f648917ca0"
version = "1.4.1"
version = "1.3.4"

[[LibGit2]]
deps = ["Printf"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"

[[Libdl]]
Expand All @@ -87,12 +111,13 @@ deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[OrderedCollections]]
git-tree-sha1 = "12ce190210d278e12644bcadf5b21cbdcf225cd3"
deps = ["Random", "Serialization", "Test"]
git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.2.0"
version = "1.1.0"

[[Pkg]]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Test", "UUIDs"]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[[Printf]]
Expand All @@ -107,6 +132,12 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
deps = ["Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

[[Requires]]
deps = ["UUIDs"]
git-tree-sha1 = "d37400976e98018ee840e0ca4f9d20baa231dc6b"
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "1.0.1"

[[SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"

Expand All @@ -116,15 +147,29 @@ uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"

[[SparseArrays]]
deps = ["LinearAlgebra", "Random"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[[StaticArrays]]
deps = ["LinearAlgebra", "Random", "Statistics"]
git-tree-sha1 = "5a3bcb6233adabde68ebc97be66e95dcb787424c"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
version = "0.12.1"

[[Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[TimerOutputs]]
deps = ["Printf"]
git-tree-sha1 = "0cc8db57cb537191b02948d4fabdc09eb7f31f98"
git-tree-sha1 = "311765af81bbb48d7bad01fb016d9c328c6ede03"
uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
version = "0.5.5"
version = "0.5.3"

[[UUIDs]]
deps = ["Random", "SHA"]
Expand Down
7 changes: 4 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "CUDAnative"
uuid = "be33ccc6-a3ff-5ff2-a52e-74243cff1e17"
version = "3.1.0"
version = "3.0.4"

[deps]
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
Expand All @@ -10,19 +10,20 @@ CUDAapi = "3895d2a7-ec45-59b8-82bb-cfc6a382f9b3"
CUDAdrv = "c5f51814-7f29-56b8-a69c-e4d8f6be1fde"
ExprTools = "e2ba6199-217a-4e67-a87a-7c52f15ade04"
GPUCompiler = "61eb1bfa-7361-4325-ad38-22787b887f55"
GPUifyLoops = "ba82f77b-6841-5d2e-bd9f-4daf811aec27"
LLVM = "929cbde3-209d-540e-8aea-75f648917ca0"
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"

[compat]
Adapt = "0.4, 1.0"
BinaryProvider = "0.3, 0.4, 0.5"
CEnum = "0.2, 0.3, 0.4"
CEnum = "0.2"
CUDAapi = "3.1, 4.0"
CUDAdrv = "6.2.1"
ExprTools = "0.1"
GPUCompiler = "0.2"
LLVM = "1.3.4"
julia = "1.3"

Expand Down
11 changes: 5 additions & 6 deletions docs/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ version = "0.8.1"

[[Documenter]]
deps = ["Base64", "Dates", "DocStringExtensions", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"]
git-tree-sha1 = "395fa1554c69735802bba37d9e7d9586fd44326c"
git-tree-sha1 = "3bacd94d853a6bccaee1d0104d8b06d29a7506ac"
uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
version = "0.24.11"
version = "0.24.6"

[[InteractiveUtils]]
deps = ["Markdown"]
Expand All @@ -34,7 +34,6 @@ uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.21.0"

[[LibGit2]]
deps = ["Printf"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"

[[Libdl]]
Expand All @@ -52,12 +51,12 @@ uuid = "a63ad114-7e13-5084-954f-fe012c677804"

[[Parsers]]
deps = ["Dates", "Test"]
git-tree-sha1 = "f0abb338b4d00306500056a3fd44c221b8473ef2"
git-tree-sha1 = "0c16b3179190d3046c073440d94172cfc3bb0553"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "1.0.4"
version = "0.3.12"

[[Pkg]]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Test", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[[Printf]]
Expand Down
36 changes: 22 additions & 14 deletions res/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,38 +10,41 @@ version = "0.2.0"

[[CSTParser]]
deps = ["Tokenize"]
git-tree-sha1 = "a2f9009a81b92d078a682d4a8576adc1f8176e90"
git-tree-sha1 = "7d10b92c4d9951ccf3009d960d9b66883c174474"
uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f"
version = "2.3.0"
version = "2.2.0"

[[Clang]]
deps = ["CEnum", "DataStructures", "LLVM_jll", "Libdl"]
git-tree-sha1 = "7a3b75a028f049ccf1bd835fc09a84dd813b5da6"
git-tree-sha1 = "98d24455089ea8567eaae53ebd51060aff1dac41"
uuid = "40e3b903-d033-50b4-a0cc-940c62c95e31"
version = "0.11.0"
version = "0.10.1"

[[DataStructures]]
deps = ["InteractiveUtils", "OrderedCollections"]
git-tree-sha1 = "6166ecfaf2b8bbf2b68d791bc1d54501f345d314"
git-tree-sha1 = "5a431d46abf2ef2a4d5d00bd0ae61f651cf854c8"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.17.15"
version = "0.17.10"

[[Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"

[[Distributed]]
deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"

[[InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"

[[LLVM_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "c037c15f36c185c613e5b2589d5833720dab3f76"
git-tree-sha1 = "8feeef069d771f4fc90935d8b1f6da3d82f9b96b"
uuid = "86de99a1-58d6-5da7-8064-bd56ce2e322c"
version = "8.0.1+0"
version = "6.0.1+0"

[[LibGit2]]
deps = ["Printf"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"

[[Libdl]]
Expand All @@ -55,12 +58,13 @@ deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[OrderedCollections]]
git-tree-sha1 = "12ce190210d278e12644bcadf5b21cbdcf225cd3"
deps = ["Random", "Serialization", "Test"]
git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.2.0"
version = "1.1.0"

[[Pkg]]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Test", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[[Printf]]
Expand All @@ -84,10 +88,14 @@ uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"

[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[Tokenize]]
git-tree-sha1 = "73c00ad506d88a7e8e4f90f48a70943101728227"
git-tree-sha1 = "c3aab236f122445406cf7a6de8af0b794da5a950"
uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624"
version = "0.5.8"
version = "0.5.7"

[[UUIDs]]
deps = ["Random", "SHA"]
Expand Down
Loading