Open3D (C++ API)  0.17.0
ISAInfo.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2023 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 #pragma once
8 
9 #include <memory>
10 
11 namespace open3d {
12 namespace utility {
13 
15 enum class ISATarget {
16  /* x86 */
17  SSE2 = 100,
18  SSE4 = 101,
19  AVX = 102,
20  AVX2 = 103,
21  AVX512KNL = 104,
22  AVX512SKX = 105,
23  /* ARM */
24  NEON = 200,
25  /* GPU */
26  GENX = 300,
27  /* Special values */
28  UNKNOWN = -1,
29  /* Additional value for disabled support */
30  DISABLED = -100
31 };
32 
36 class ISAInfo {
37 public:
38  static ISAInfo& GetInstance();
39 
40  ~ISAInfo() = default;
41  ISAInfo(const ISAInfo&) = delete;
42  void operator=(const ISAInfo&) = delete;
43 
45  ISATarget SelectedTarget() const;
46 
48  void Print() const;
49 
50 private:
51  ISAInfo();
52  struct Impl;
53  std::unique_ptr<Impl> impl_;
54 };
55 
56 } // namespace utility
57 } // namespace open3d
ISA information.
Definition: ISAInfo.h:36
void Print() const
Prints ISAInfo in the console.
Definition: ISAInfo.cpp:78
ISAInfo(const ISAInfo &)=delete
ISATarget SelectedTarget() const
Returns the dispatched ISA target that will be used in kernel code.
Definition: ISAInfo.cpp:76
static ISAInfo & GetInstance()
Definition: ISAInfo.cpp:71
void operator=(const ISAInfo &)=delete
ISATarget
Set of known ISA targets.
Definition: ISAInfo.h:15
Definition: PinholeCameraIntrinsic.cpp:16
Definition: ISAInfo.cpp:19