This commit is contained in:
narawat lamaiin
2024-03-15 08:09:26 +07:00
parent e6a3eb0894
commit cd5c8d180c

View File

@@ -6,29 +6,46 @@ using CUDA
# ------------------------------ 100 characters ------------------------------ # # ------------------------------ 100 characters ------------------------------ #
""" Search wine in stock. """ CUDA version of cartesianAssign!().
Arguments\n Arguments\n
a : one of ChatAgent's agent. -----
a::CuArray
target matrix.
b::CuArray
source matrix.
Return\n Return\n
A JSON string of available wine -----
Resulting matrix a
Example\n Example\n
```jldoctest ```jldoctest
julia> using ChatAgent, CommUtils julia> not done yet
julia> agent = ChatAgent.agentReflex("Jene")
julia> input = "{\"food\": \"pizza\", \"occasion\": \"anniversary\"}"
julia> result = winestock(agent, input)
"{"wine 1": {\"Winery\": \"Pichon Baron\", \"wine name\": \"Pauillac (Grand Cru Classé)\", \"grape variety\": \"Cabernet Sauvignon\", \"year\": 2010, \"price\": \"125 USD\", \"stock ID\": \"ar-17\"}, }"
``` ```
Signature\n
-----
""" """
cartesianAssign!(a::CuArray, b::CuArray) = @cuda cartesianAssign!(a, b) cartesianAssign!(a::CuArray, b::CuArray) = @cuda cartesianAssign!(a, b)
""" GPU version of batchMatEleMul """ CUDA version of batchMatEleMul.
Example Arguments\n
-----
a::CuArray
Input matrix
b::CuArray
Input matrix
Return\n
-----
Resulting matrix
Example\n
-----
```jldoctest
julia> using Flux, CUDA julia> using Flux, CUDA
julia> device = Flux.CUDA.functional() ? gpu : cpu julia> device = Flux.CUDA.functional() ? gpu : cpu
julia> if device == gpu CUDA.device!(0) end julia> if device == gpu CUDA.device!(0) end
@@ -37,6 +54,10 @@ cartesianAssign!(a::CuArray, b::CuArray) = @cuda cartesianAssign!(a, b)
julia> r = matMul_3Dto3D_manyTo1batch(input, weight); julia> r = matMul_3Dto3D_manyTo1batch(input, weight);
julia> size(r) julia> size(r)
(32, 32, 1024, 128) (32, 32, 1024, 128)
```
Signature\n
-----
""" """
function matMul_3Dto3D_manyTo1batch(a::CuArray, b::CuArray; function matMul_3Dto3D_manyTo1batch(a::CuArray, b::CuArray;
resultStorage::Union{CuArray, Nothing}=nothing) resultStorage::Union{CuArray, Nothing}=nothing)