SkelCL
SkelCL is a high level multi GPU skeleton library developed at the university of Münster, Germany.
 All Classes Namespaces Files Functions Variables Typedefs Groups
SkelCL.cpp
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2011-2012 The SkelCL Team as listed in CREDITS.txt *
3  * http://skelcl.uni-muenster.de *
4  * *
5  * This file is part of SkelCL. *
6  * SkelCL is available under multiple licenses. *
7  * The different licenses are subject to terms and condition as provided *
8  * in the files specifying the license. See "LICENSE.txt" for details *
9  * *
10  *****************************************************************************
11  * *
12  * SkelCL is free software: you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation, either version 3 of the License, or *
15  * (at your option) any later version. See "LICENSE-gpl.txt" for details. *
16  * *
17  * SkelCL is distributed in the hope that it will be useful, *
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
20  * GNU General Public License for more details. *
21  * *
22  *****************************************************************************
23  * *
24  * For non-commercial academic use see the license specified in the file *
25  * "LICENSE-academic.txt". *
26  * *
27  *****************************************************************************
28  * *
29  * If you are interested in other licensing models, including a commercial- *
30  * license, please contact the author at michel.steuwer@uni-muenster.de *
31  * *
32  *****************************************************************************/
33 
39 
40 #include <pvsutil/Logger.h>
41 
42 #include "SkelCL/SkelCL.h"
43 
44 #include "SkelCL/detail/DeviceList.h"
45 #include "SkelCL/detail/DeviceProperties.h"
46 #include "SkelCL/detail/PlatformID.h"
47 #include "SkelCL/detail/DeviceID.h"
48 
49 namespace skelcl {
50 
51 void init(detail::DeviceProperties properites)
52 {
53  detail::globalDeviceList.init(std::move(properites));
54 }
55 
56 void init(detail::PlatformID pID, detail::DeviceID dID)
57 {
58  detail::globalDeviceList.init(pID, dID);
59 }
60 
61 detail::DeviceProperties allDevices()
62 {
64 }
65 
66 detail::DeviceProperties nDevices(size_t n)
67 {
69 }
70 
71 detail::PlatformID platform(size_t pID)
72 {
73  return detail::PlatformID(pID);
74 }
75 
76 detail::DeviceID device(size_t dID)
77 {
78  return detail::DeviceID(dID);
79 }
80 
81 void terminate()
82 {
83  detail::globalDeviceList.clear();
84  LOG_INFO("SkelCL terminating. Freeing all resources.");
85 }
86 
87 } // namespace skelcl
88 
SKELCL_DLL detail::DeviceProperties allDevices()
Creates a detail::DeviceProperties object representing all devices in the system. This object should ...
Definition: SkelCL.cpp:61
SKELCL_DLL void init(detail::DeviceProperties properties=allDevices())
Initializes the SkelCL library. This function (or another init function) has to be called prior to ev...
Definition: SkelCL.cpp:51
SKELCL_DLL detail::DeviceID device(size_t dID)
Creates an OpenCL device ID to be used as parameter of the init(detail::PlatformID, detail::DeviceID) function.
Definition: SkelCL.cpp:76
SKELCL_DLL detail::DeviceProperties nDevices(size_t n)
Creates a detail::DeviceProperties object representing n devices. This object should be used as param...
Definition: SkelCL.cpp:66
SKELCL_DLL void terminate()
Frees all resources allocated internally by SkelCL.
Definition: SkelCL.cpp:81
SKELCL_DLL detail::PlatformID platform(size_t pID)
Creates an OpenCL platform ID to be used as parameter of the init(detail::PlatformID, detail::DeviceID) function.
Definition: SkelCL.cpp:71