add multithreading

This commit is contained in:
2023-05-20 21:22:56 +07:00
parent 3041cde44a
commit 548f2663fa
4 changed files with 12 additions and 11 deletions

View File

@@ -2,7 +2,7 @@ module forward
using Flux.Optimise: apply!
using Statistics, Flux, Random, LinearAlgebra
using Statistics, Flux, Random, LinearAlgebra, JSON3
using GeneralUtils
using ..types, ..snn_utils
@@ -77,8 +77,8 @@ function (kfn::kfn_1)(m::model, input_data::AbstractVector)
kfn.firedNeurons_t0 = [n.z_t for n in kfn.neuronsArray] #TODO check if it is used?
#CHANGE Threads.@threads for n in kfn.neuronsArray
for n in kfn.neuronsArray
Threads.@threads for n in kfn.neuronsArray
# for n in kfn.neuronsArray
n(kfn)
end
@@ -88,8 +88,8 @@ function (kfn::kfn_1)(m::model, input_data::AbstractVector)
kfn.firedNeurons |> unique! # use for random new neuron connection
end
# Threads.@threads for n in kfn.outputNeuronsArray
for n in kfn.outputNeuronsArray
Threads.@threads for n in kfn.outputNeuronsArray
# for n in kfn.outputNeuronsArray
n(kfn)
end

View File

@@ -2,7 +2,7 @@ module learn
using Flux.Optimise: apply!
using Statistics, Flux, Random, LinearAlgebra
using Statistics, Flux, Random, LinearAlgebra, JSON3
using GeneralUtils
using ..types, ..snn_utils
@@ -30,8 +30,8 @@ function learn!(kfn::kfn_1, correctAnswer::AbstractVector)
kfnError = (kfn.outputNeuronsArray[i].v_th - kfn.outputNeuronsArray[i].vError) *
100 / kfn.outputNeuronsArray[i].v_th
# Threads.@threads for n in kfn.neuronsArray
for n in kfn.neuronsArray
Threads.@threads for n in kfn.neuronsArray
# for n in kfn.neuronsArray
learn!(n, kfnError)
end
@@ -41,8 +41,8 @@ function learn!(kfn::kfn_1, correctAnswer::AbstractVector)
# wrap up learning session
if kfn.learningStage == "end_learning"
# Threads.@threads for n in kfn.neuronsArray
for n in kfn.neuronsArray
Threads.@threads for n in kfn.neuronsArray
# for n in kfn.neuronsArray
if typeof(n) <: computeNeuron
wSign_0 = sign.(n.wRec) # original sign
n.wRec += n.wRecChange # merge wRecChange into wRec