summaryrefslogtreecommitdiff
path: root/gpt2/cuda.go
diff options
context:
space:
mode:
authorJonas Knobloch <jonas.knobloch@t-online.de>2025-11-18 02:04:41 +0100
committerJonas Knobloch <jonas.knobloch@t-online.de>2025-11-18 02:09:09 +0100
commit321802e7b1f77f684a720d1052befd6d36280875 (patch)
tree7312584cc5db9b30acef5151dff242dbbd7a7379 /gpt2/cuda.go
parent7073b124c5eb31169442ef18d1627b7ed7401280 (diff)
Add perplexity evaluation
Diffstat (limited to 'gpt2/cuda.go')
-rw-r--r--gpt2/cuda.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/gpt2/cuda.go b/gpt2/cuda.go
new file mode 100644
index 0000000..ae3fbcd
--- /dev/null
+++ b/gpt2/cuda.go
@@ -0,0 +1,36 @@
+package gpt2
+
+import ort "github.com/yalue/onnxruntime_go"
+
+func SessionsOptionsWithCUDADeviceID(deviceID string) (*ort.SessionOptions, error) {
+ var sessionOptions *ort.SessionOptions
+ var cudaProviderOptions *ort.CUDAProviderOptions
+
+ if s, err := ort.NewSessionOptions(); err != nil {
+ return nil, err
+ } else {
+ sessionOptions = s
+ }
+
+ if c, err := ort.NewCUDAProviderOptions(); err != nil {
+ return nil, err
+ } else {
+ cudaProviderOptions = c
+ }
+
+ if err := cudaProviderOptions.Update(map[string]string{
+ "device_id": deviceID,
+ }); err != nil {
+ return nil, err
+ }
+
+ if err := sessionOptions.AppendExecutionProviderCUDA(cudaProviderOptions); err != nil {
+ return nil, err
+ }
+
+ if err := cudaProviderOptions.Destroy(); err != nil {
+ return nil, err
+ }
+
+ return sessionOptions, nil
+}