Skip to content

Commit efe7c4f

Browse files
committed
try avoiding copies
1 parent a937f90 commit efe7c4f

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

Diff for: src/main/java/io/bioimage/modelrunner/pytorch/javacpp/shm/ShmBuilder.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,21 @@
2020
*/
2121
package io.bioimage.modelrunner.pytorch.javacpp.shm;
2222

23+
import io.bioimage.modelrunner.pytorch.javacpp.tensor.ImgLib2Builder;
2324
import io.bioimage.modelrunner.system.PlatformDetection;
2425
import io.bioimage.modelrunner.tensor.shm.SharedMemoryArray;
2526
import io.bioimage.modelrunner.utils.CommonUtils;
2627

2728
import java.io.IOException;
2829
import java.nio.ByteBuffer;
30+
import java.nio.FloatBuffer;
2931
import java.util.Arrays;
3032

3133
import org.bytedeco.pytorch.Tensor;
3234

3335
import net.imglib2.type.numeric.integer.IntType;
3436
import net.imglib2.type.numeric.integer.LongType;
37+
import net.imglib2.RandomAccessibleInterval;
3538
import net.imglib2.type.numeric.integer.ByteType;
3639
import net.imglib2.type.numeric.real.DoubleType;
3740
import net.imglib2.type.numeric.real.FloatType;
@@ -96,7 +99,8 @@ private static void buildFromTensorInt(Tensor tensor, String memoryName) throws
9699
throw new IllegalArgumentException("Model output tensor with shape " + Arrays.toString(arrayShape)
97100
+ " is too big. Max number of elements per int output tensor supported: " + Integer.MAX_VALUE / 4);
98101
SharedMemoryArray shma = SharedMemoryArray.readOrCreate(memoryName, arrayShape, new IntType(), false, true);
99-
shma.getDataBufferNoHeader().put(tensor.asByteBuffer());
102+
RandomAccessibleInterval<?> rai = shma.getSharedRAI();
103+
rai = ImgLib2Builder.build(tensor);
100104
if (PlatformDetection.isWindows()) shma.close();
101105
}
102106

0 commit comments

Comments
 (0)