0 | {--
 1 | Copyright (C) 2024  Joel Berkeley
 2 |
 3 | This program is free software: you can redistribute it and/or modify
 4 | it under the terms of the GNU Affero General Public License as published
 5 | by the Free Software Foundation, either version 3 of the License, or
 6 | (at your option) any later version.
 7 |
 8 | This program is distributed in the hope that it will be useful,
 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 | GNU Affero General Public License for more details.
12 |
13 | You should have received a copy of the GNU Affero General Public License
14 | along with this program.  If not, see <https://www.gnu.org/licenses/>.
15 | --}
16 | module PjrtPluginXlaCuda
17 |
18 | import System.FFI
19 |
20 | import public Compiler.Xla.PJRT.C.PjrtCApi
21 | import public Device
22 |
23 | %foreign "C:GetPjrtApi,pjrt_plugin_xla_cuda,xla/pjrt/c/pjrt_c_api_gpu.h"
24 | prim__getPjrtApi : PrimIO AnyPtr
25 |
26 | export
27 | device : Pjrt Device
28 | device = createDevice =<< MkPjrtApi <$> primIO prim__getPjrtApi
29 |