Some checks are pending
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, pre) (push) Waiting to run
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, 1.10) (push) Waiting to run
CI / Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (x64, ubuntu-latest, 1.6) (push) Waiting to run
38 lines
960 B
Julia
38 lines
960 B
Julia
using CUDA
|
|
using DelimitedFiles
|
|
using GZip
|
|
|
|
using .Transpiler
|
|
using .Interpreter
|
|
|
|
include("parser.jl") # to parse expressions from a file
|
|
|
|
|
|
data,varnames = readdlm("data/nikuradse_1.csv", ',', header=true);
|
|
X = permutedims(convert(Matrix{Float32}, data))
|
|
|
|
exprs = Expr[]
|
|
parameters = Vector{Vector{Float32}}()
|
|
varnames = ["x$i" for i in 1:10]
|
|
paramnames = ["p$i" for i in 1:20]
|
|
# data/esr_nvar2_len10.txt.gz_9.txt.gz has ~250_000 exprs
|
|
# data/esr_nvar2_len10.txt.gz_10.txt.gz has ~800_000 exrps
|
|
GZip.open("data/esr_nvar2_len10.txt.gz_3.txt.gz") do io
|
|
for line in eachline(io)
|
|
expr, p = parse_infix(line, varnames, paramnames)
|
|
|
|
push!(exprs, expr)
|
|
push!(parameters, randn(Float32, length(p)))
|
|
end
|
|
end
|
|
expr_reps = 1
|
|
|
|
|
|
@testset "Interpreter Tuning" begin
|
|
# CUDA.@profile interpret_gpu(exprs, X, parameters; repetitions=expr_reps)
|
|
end
|
|
|
|
|
|
@testset "Transpiler Tuning" begin
|
|
CUDA.@profile evaluate_gpu(exprs, X, parameters; repetitions=expr_reps)
|
|
end |