Open3D (C++ API)  0.15.1
ISAInfo.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// The MIT License (MIT)
5//
6// Copyright (c) 2018-2021 www.open3d.org
7//
8// Permission is hereby granted, free of charge, to any person obtaining a copy
9// of this software and associated documentation files (the "Software"), to deal
10// in the Software without restriction, including without limitation the rights
11// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12// copies of the Software, and to permit persons to whom the Software is
13// furnished to do so, subject to the following conditions:
14//
15// The above copyright notice and this permission notice shall be included in
16// all copies or substantial portions of the Software.
17//
18// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24// IN THE SOFTWARE.
25// ----------------------------------------------------------------------------
26#pragma once
27
28#include <memory>
29
30namespace open3d {
31namespace utility {
32
34enum class ISATarget {
35 /* x86 */
36 SSE2 = 100,
37 SSE4 = 101,
38 AVX = 102,
39 AVX2 = 103,
40 AVX512KNL = 104,
41 AVX512SKX = 105,
42 /* ARM */
43 NEON = 200,
44 /* GPU */
45 GENX = 300,
46 /* Special values */
47 UNKNOWN = -1,
48 /* Additional value for disabled support */
49 DISABLED = -100
50};
51
55class ISAInfo {
56public:
57 static ISAInfo& GetInstance();
58
59 ~ISAInfo() = default;
60 ISAInfo(const ISAInfo&) = delete;
61 void operator=(const ISAInfo&) = delete;
62
65
67 void Print() const;
68
69private:
70 ISAInfo();
71 struct Impl;
72 std::unique_ptr<Impl> impl_;
73};
74
75} // namespace utility
76} // namespace open3d
ISA information.
Definition: ISAInfo.h:55
void Print() const
Prints ISAInfo in the console.
Definition: ISAInfo.cpp:97
ISAInfo(const ISAInfo &)=delete
ISATarget SelectedTarget() const
Returns the dispatched ISA target that will be used in kernel code.
Definition: ISAInfo.cpp:95
static ISAInfo & GetInstance()
Definition: ISAInfo.cpp:90
void operator=(const ISAInfo &)=delete
ISATarget
Set of known ISA targets.
Definition: ISAInfo.h:34
Definition: PinholeCameraIntrinsic.cpp:35
Definition: ISAInfo.cpp:38