move cuda.utils library words to cuda.libraries
parent
8ae600124c
commit
b34c75a6a3
|
|
@ -6,7 +6,7 @@ combinators continuations cuda.ffi cuda.memory cuda.utils
|
||||||
destructors fry init io io.backend io.encodings.string
|
destructors fry init io io.backend io.encodings.string
|
||||||
io.encodings.utf8 kernel lexer locals macros math math.parser
|
io.encodings.utf8 kernel lexer locals macros math math.parser
|
||||||
namespaces nested-comments opengl.gl.extensions parser
|
namespaces nested-comments opengl.gl.extensions parser
|
||||||
prettyprint quotations sequences words ;
|
prettyprint quotations sequences words cuda.libraries ;
|
||||||
QUALIFIED-WITH: alien.c-types a
|
QUALIFIED-WITH: alien.c-types a
|
||||||
IN: cuda
|
IN: cuda
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Doug Coleman
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
! Copyright (C) 2010 Doug Coleman.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: accessors alien.c-types alien.data arrays assocs
|
||||||
|
cuda.ffi cuda.utils io.backend kernel namespaces sequences ;
|
||||||
|
IN: cuda.libraries
|
||||||
|
|
||||||
|
SYMBOL: cuda-libraries
|
||||||
|
cuda-libraries [ H{ } clone ] initialize
|
||||||
|
|
||||||
|
SYMBOL: current-cuda-library
|
||||||
|
|
||||||
|
TUPLE: cuda-library name path handle ;
|
||||||
|
|
||||||
|
: <cuda-library> ( name path -- obj )
|
||||||
|
\ cuda-library new
|
||||||
|
swap >>path
|
||||||
|
swap >>name ;
|
||||||
|
|
||||||
|
: add-cuda-library ( name path -- )
|
||||||
|
normalize-path <cuda-library>
|
||||||
|
dup name>> cuda-libraries get-global set-at ;
|
||||||
|
|
||||||
|
: ?delete-at ( key assoc -- old/key ? )
|
||||||
|
2dup delete-at* [ 2nip t ] [ 2drop f ] if ; inline
|
||||||
|
|
||||||
|
ERROR: no-cuda-library name ;
|
||||||
|
|
||||||
|
: load-module ( path -- module )
|
||||||
|
[ CUmodule <c-object> ] dip
|
||||||
|
[ cuModuleLoad cuda-error ] 2keep drop *void* ;
|
||||||
|
|
||||||
|
: unload-module ( module -- )
|
||||||
|
cuModuleUnload cuda-error ;
|
||||||
|
|
||||||
|
: load-cuda-library ( library -- handle )
|
||||||
|
path>> load-module ;
|
||||||
|
|
||||||
|
: lookup-cuda-library ( name -- cuda-library )
|
||||||
|
cuda-libraries get ?at [ no-cuda-library ] unless ;
|
||||||
|
|
||||||
|
: remove-cuda-library ( name -- library )
|
||||||
|
cuda-libraries get ?delete-at [ no-cuda-library ] unless ;
|
||||||
|
|
||||||
|
: unload-cuda-library ( name -- )
|
||||||
|
remove-cuda-library handle>> unload-module ;
|
||||||
|
|
||||||
|
: cached-module ( module-name -- alien )
|
||||||
|
lookup-cuda-library
|
||||||
|
cuda-modules get-global [ load-cuda-library ] cache ;
|
||||||
|
|
||||||
|
: cached-function ( module-name function-name -- alien )
|
||||||
|
[ cached-module ] dip
|
||||||
|
2array cuda-functions get [ first2 get-function-ptr* ] cache ;
|
||||||
|
|
@ -44,55 +44,6 @@ ERROR: throw-cuda-error n ;
|
||||||
|
|
||||||
: destroy-context ( context -- ) cuCtxDestroy cuda-error ;
|
: destroy-context ( context -- ) cuCtxDestroy cuda-error ;
|
||||||
|
|
||||||
SYMBOL: cuda-libraries
|
|
||||||
cuda-libraries [ H{ } clone ] initialize
|
|
||||||
|
|
||||||
SYMBOL: current-cuda-library
|
|
||||||
|
|
||||||
TUPLE: cuda-library name path handle ;
|
|
||||||
|
|
||||||
: <cuda-library> ( name path -- obj )
|
|
||||||
\ cuda-library new
|
|
||||||
swap >>path
|
|
||||||
swap >>name ;
|
|
||||||
|
|
||||||
: add-cuda-library ( name path -- )
|
|
||||||
normalize-path <cuda-library>
|
|
||||||
dup name>> cuda-libraries get-global set-at ;
|
|
||||||
|
|
||||||
: ?delete-at ( key assoc -- old/key ? )
|
|
||||||
2dup delete-at* [ 2nip t ] [ 2drop f ] if ; inline
|
|
||||||
|
|
||||||
ERROR: no-cuda-library name ;
|
|
||||||
|
|
||||||
: load-module ( path -- module )
|
|
||||||
[ CUmodule <c-object> ] dip
|
|
||||||
[ cuModuleLoad cuda-error ] 2keep drop *void* ;
|
|
||||||
|
|
||||||
: unload-module ( module -- )
|
|
||||||
cuModuleUnload cuda-error ;
|
|
||||||
|
|
||||||
: load-cuda-library ( library -- handle )
|
|
||||||
path>> load-module ;
|
|
||||||
|
|
||||||
: lookup-cuda-library ( name -- cuda-library )
|
|
||||||
cuda-libraries get ?at [ no-cuda-library ] unless ;
|
|
||||||
|
|
||||||
: remove-cuda-library ( name -- library )
|
|
||||||
cuda-libraries get ?delete-at [ no-cuda-library ] unless ;
|
|
||||||
|
|
||||||
: unload-cuda-library ( name -- )
|
|
||||||
remove-cuda-library handle>> unload-module ;
|
|
||||||
|
|
||||||
|
|
||||||
: cached-module ( module-name -- alien )
|
|
||||||
lookup-cuda-library
|
|
||||||
cuda-modules get-global [ load-cuda-library ] cache ;
|
|
||||||
|
|
||||||
: cached-function ( module-name function-name -- alien )
|
|
||||||
[ cached-module ] dip
|
|
||||||
2array cuda-functions get [ first2 get-function-ptr* ] cache ;
|
|
||||||
|
|
||||||
: launch-function* ( function -- ) cuLaunch cuda-error ;
|
: launch-function* ( function -- ) cuLaunch cuda-error ;
|
||||||
|
|
||||||
: launch-function ( -- ) cuda-function get cuLaunch cuda-error ;
|
: launch-function ( -- ) cuda-function get cuLaunch cuda-error ;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue