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

View File

@@ -6,37 +6,58 @@ using CUDA
# ------------------------------ 100 characters ------------------------------ #
""" Search wine in stock.
""" CUDA version of cartesianAssign!().
Arguments\n
a : one of ChatAgent's agent.
-----
a::CuArray
target matrix.
b::CuArray
source matrix.
Return\n
A JSON string of available wine
-----
Resulting matrix a
Example\n
```jldoctest
julia> using ChatAgent, CommUtils
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\"}, }"
julia> not done yet
```
Signature\n
-----
"""
cartesianAssign!(a::CuArray, b::CuArray) = @cuda cartesianAssign!(a, b)
""" GPU version of batchMatEleMul
""" CUDA version of batchMatEleMul.
Example
julia> using Flux, CUDA
julia> device = Flux.CUDA.functional() ? gpu : cpu
julia> if device == gpu CUDA.device!(0) end
julia> input = rand(32, 32, 128) |> gpu; # 128-batches
julia> weight = rand(32, 32, 1024) |> gpu; # 1-batch. this matrix is essentially (32, 32, 1024, 1)
julia> r = matMul_3Dto3D_manyTo1batch(input, weight);
julia> size(r)
(32, 32, 1024, 128)
Arguments\n
-----
a::CuArray
Input matrix
b::CuArray
Input matrix
Return\n
-----
Resulting matrix
Example\n
-----
```jldoctest
julia> using Flux, CUDA
julia> device = Flux.CUDA.functional() ? gpu : cpu
julia> if device == gpu CUDA.device!(0) end
julia> input = rand(32, 32, 128) |> gpu; # 128-batches
julia> weight = rand(32, 32, 1024) |> gpu; # 1-batch. this matrix is essentially (32, 32, 1024, 1)
julia> r = matMul_3Dto3D_manyTo1batch(input, weight);
julia> size(r)
(32, 32, 1024, 128)
```
Signature\n
-----
"""
function matMul_3Dto3D_manyTo1batch(a::CuArray, b::CuArray;
resultStorage::Union{CuArray, Nothing}=nothing)