File tree Expand file tree Collapse file tree 12 files changed +50
-77
lines changed
lightgbm/src/main/java/ai/djl/ml/lightgbm
xgboost/src/main/java/ai/djl/ml/xgboost
mxnet/mxnet-engine/src/main/java/ai/djl/mxnet/engine
onnxruntime/onnxruntime-engine/src/main/java/ai/djl/onnxruntime/engine
paddlepaddle/paddlepaddle-engine/src/main/java/ai/djl/paddlepaddle/engine
pytorch/pytorch-engine/src/main/java/ai/djl/pytorch/engine
tensorflow/tensorflow-engine/src/main/java/ai/djl/tensorflow/engine
main/java/ai/djl/tensorrt/engine
test/java/ai/djl/tensorrt
tflite/tflite-engine/src/main/java/ai/djl/tflite/engine Expand file tree Collapse file tree 12 files changed +50
-77
lines changed Original file line number Diff line number Diff line change 1818/** {@code LgbmEngineProvider} is the LightGBM implementation of {@link EngineProvider}. */
1919public class LgbmEngineProvider implements EngineProvider {
2020
21- private static volatile Engine engine ; // NOPMD
22-
2321 /** {@inheritDoc} */
2422 @ Override
2523 public String getEngineName () {
@@ -35,11 +33,10 @@ public int getEngineRank() {
3533 /** {@inheritDoc} */
3634 @ Override
3735 public Engine getEngine () {
38- if (engine == null ) {
39- synchronized (LgbmEngineProvider .class ) {
40- engine = LgbmEngine .newInstance ();
41- }
42- }
43- return engine ;
36+ return InstanceHolder .INSTANCE ;
37+ }
38+
39+ private static class InstanceHolder {
40+ static final Engine INSTANCE = LgbmEngine .newInstance ();
4441 }
4542}
Original file line number Diff line number Diff line change 1818/** {@code XgbEngineProvider} is the XGBoost implementation of {@link EngineProvider}. */
1919public class XgbEngineProvider implements EngineProvider {
2020
21- private static volatile Engine engine ; // NOPMD
22-
2321 /** {@inheritDoc} */
2422 @ Override
2523 public String getEngineName () {
@@ -35,11 +33,10 @@ public int getEngineRank() {
3533 /** {@inheritDoc} */
3634 @ Override
3735 public Engine getEngine () {
38- if (engine == null ) {
39- synchronized (XgbEngineProvider .class ) {
40- engine = XgbEngine .newInstance ();
41- }
42- }
43- return engine ;
36+ return InstanceHolder .INSTANCE ;
37+ }
38+
39+ private static class InstanceHolder {
40+ static final Engine INSTANCE = XgbEngine .newInstance ();
4441 }
4542}
Original file line number Diff line number Diff line change 1818/** {@code MxEngineProvider} is the MXNet implementation of {@link EngineProvider}. */
1919public class MxEngineProvider implements EngineProvider {
2020
21- private static volatile Engine engine ; // NOPMD
22-
2321 /** {@inheritDoc} */
2422 @ Override
2523 public String getEngineName () {
@@ -35,11 +33,10 @@ public int getEngineRank() {
3533 /** {@inheritDoc} */
3634 @ Override
3735 public Engine getEngine () {
38- if (engine == null ) {
39- synchronized (MxEngineProvider .class ) {
40- engine = MxEngine .newInstance ();
41- }
42- }
43- return engine ;
36+ return InstanceHolder .INSTANCE ;
37+ }
38+
39+ private static class InstanceHolder {
40+ static final Engine INSTANCE = MxEngine .newInstance ();
4441 }
4542}
Original file line number Diff line number Diff line change 1818/** {@code OrtEngineProvider} is the ONNX Runtime implementation of {@link EngineProvider}. */
1919public class OrtEngineProvider implements EngineProvider {
2020
21- private static volatile Engine engine ; // NOPMD
22-
2321 /** {@inheritDoc} */
2422 @ Override
2523 public String getEngineName () {
@@ -35,11 +33,10 @@ public int getEngineRank() {
3533 /** {@inheritDoc} */
3634 @ Override
3735 public Engine getEngine () {
38- if (engine == null ) {
39- synchronized (OrtEngineProvider .class ) {
40- engine = OrtEngine .newInstance ();
41- }
42- }
43- return engine ;
36+ return InstanceHolder .INSTANCE ;
37+ }
38+
39+ private static class InstanceHolder {
40+ static final Engine INSTANCE = OrtEngine .newInstance ();
4441 }
4542}
Original file line number Diff line number Diff line change 1818/** {@code PpEngineProvider} is the PaddlePaddle implementation of {@link EngineProvider}. */
1919public class PpEngineProvider implements EngineProvider {
2020
21- private static volatile Engine engine ; // NOPMD
22-
2321 /** {@inheritDoc} */
2422 @ Override
2523 public String getEngineName () {
@@ -35,11 +33,10 @@ public int getEngineRank() {
3533 /** {@inheritDoc} */
3634 @ Override
3735 public Engine getEngine () {
38- if (engine == null ) {
39- synchronized (PpEngineProvider .class ) {
40- engine = PpEngine .newInstance ();
41- }
42- }
43- return engine ;
36+ return InstanceHolder .INSTANCE ;
37+ }
38+
39+ private static class InstanceHolder {
40+ static final Engine INSTANCE = PpEngine .newInstance ();
4441 }
4542}
Original file line number Diff line number Diff line change 1818/** {@code PtEngineProvider} is the PyTorch implementation of {@link EngineProvider}. */
1919public class PtEngineProvider implements EngineProvider {
2020
21- private static volatile Engine engine ; // NOPMD
22-
2321 /** {@inheritDoc} */
2422 @ Override
2523 public String getEngineName () {
@@ -35,11 +33,10 @@ public int getEngineRank() {
3533 /** {@inheritDoc} */
3634 @ Override
3735 public Engine getEngine () {
38- if (engine == null ) {
39- synchronized (PtEngineProvider .class ) {
40- engine = PtEngine .newInstance ();
41- }
42- }
43- return engine ;
36+ return InstanceHolder .INSTANCE ;
37+ }
38+
39+ private static class InstanceHolder {
40+ static final Engine INSTANCE = PtEngine .newInstance ();
4441 }
4542}
Original file line number Diff line number Diff line change 1818/** {@code TfEngineProvider} is the TensorFlow implementation of {@link EngineProvider}. */
1919public class TfEngineProvider implements EngineProvider {
2020
21- private static volatile Engine engine ; // NOPMD
22-
2321 /** {@inheritDoc} */
2422 @ Override
2523 public String getEngineName () {
@@ -35,11 +33,10 @@ public int getEngineRank() {
3533 /** {@inheritDoc} */
3634 @ Override
3735 public Engine getEngine () {
38- if (engine == null ) {
39- synchronized (TfEngineProvider .class ) {
40- engine = TfEngine .newInstance ();
41- }
42- }
43- return engine ;
36+ return InstanceHolder .INSTANCE ;
37+ }
38+
39+ private static class InstanceHolder {
40+ static final Engine INSTANCE = TfEngine .newInstance ();
4441 }
4542}
Original file line number Diff line number Diff line change 1818/** {@code TrtEngineProvider} is the TensorRT implementation of {@link EngineProvider}. */
1919public class TrtEngineProvider implements EngineProvider {
2020
21- private static volatile Engine engine ; // NOPMD
22-
2321 /** {@inheritDoc} */
2422 @ Override
2523 public String getEngineName () {
@@ -35,11 +33,10 @@ public int getEngineRank() {
3533 /** {@inheritDoc} */
3634 @ Override
3735 public Engine getEngine () {
38- if (engine == null ) {
39- synchronized (TrtEngineProvider .class ) {
40- engine = TrtEngine .newInstance ();
41- }
42- }
43- return engine ;
36+ return InstanceHolder .INSTANCE ;
37+ }
38+
39+ private static class InstanceHolder {
40+ static final Engine INSTANCE = TrtEngine .newInstance ();
4441 }
4542}
Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ public void getVersion() {
2626 try {
2727 Engine engine = Engine .getEngine ("TensorRT" );
2828 version = engine .getVersion ();
29- } catch (Exception ignore ) {
29+ } catch (Throwable ignore ) {
3030 throw new SkipException ("Your os configuration doesn't support TensorRT." );
3131 }
3232 Assert .assertEquals (version , "8.4.1" );
Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ public void testNDArray() {
2828 Engine engine ;
2929 try {
3030 engine = Engine .getEngine ("TensorRT" );
31- } catch (Exception ignore ) {
31+ } catch (Throwable ignore ) {
3232 throw new SkipException ("Your os configuration doesn't support TensorRT." );
3333 }
3434 if (!engine .defaultDevice ().isGpu ()) {
You can’t perform that action at this time.
0 commit comments