From 8ffbcac93b8e8148d8ef64e4f2028f73bf72189b Mon Sep 17 00:00:00 2001 From: neurolabusc Date: Sun, 14 Jan 2024 16:20:16 +0100 Subject: [PATCH] Lookup table to improve float16 performance (https://github.com/niivue/niivue/issues/830) --- M1.png | Bin 45753 -> 0 bytes M2.png | Bin 0 -> 83287 bytes README.md | 6 +++--- graphM1.py | 29 ----------------------------- graphM2.py | 32 ++++++++++++++++++++++++++++++++ streamlineIO.mjs | 4 +++- 6 files changed, 38 insertions(+), 33 deletions(-) delete mode 100644 M1.png create mode 100644 M2.png delete mode 100755 graphM1.py create mode 100755 graphM2.py diff --git a/M1.png b/M1.png deleted file mode 100644 index 3e195cbb15d207e8fceab4b18dd2bc68c1b675f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45753 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 IA3gj30G#E_SpWb4 diff --git a/M2.png b/M2.png new file mode 100644 index 0000000000000000000000000000000000000000..e795093351d2114716505adef7ca345479bfb0c2 GIT binary patch literal 83287 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 @H3_vfz_P< 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 826f971..99d1315 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ This code should be supported by all modern web browsers. If you want to use thi The module `streamlineIO.mjs` provides JavaScript reading for streamlines in the TCX, TRK, TRX, and VTK formats. The included file `bench.mjs` demonstrates these capabilities by loading a streamline 11 times and reporting details regarding file size, loading time, and streamline properties. -Assuming you have [node 14.11.2 or later]([web site](https://nodejs.org/en/download/) you can run the demo: +Assuming you have [node 14.11.2 or later](https://nodejs.org/en/download/) you can run the demo: ``` $ git clone https://github.com/tee-ar-ex/trx-javascript @@ -68,7 +68,7 @@ There are several important considerations regarding supporting the TRX format w The included JavaScript `bench` provides a method to evaluate performance. This benchmark is likely specific to JavaScript and so caution should be excercised in evaluating relative performance. The script will report the time to load a TRK, TCK, VTK or TRX file 10 times (it loads the tracts 11 times, and ignores the first run). -The graph below shows the time load the [left inferior fronto-occipital fasciculus (IFOF) ](https://brain.labsolver.org/hcp_trk_atlas.html) with 30856 streamlines and 11437105 vertices. The benchmark was run on a passively-cooled 15w M1-based MacBook Air. The ideal format would be both fast to load (to the left on the horizontal axis) and have a small file size (toward the bottom in the right axis). However, compression typically trades load time for file size. Here all data is loaded from a local solid state drive, whereas smaller files would benefit if data was loaded using a slow internet connection. The following file formats are illustrated (except where noted, both positions and indices are stored with 32-bit precision): +The graph below shows the time load the [left inferior fronto-occipital fasciculus (IFOF) ](https://brain.labsolver.org/hcp_trk_atlas.html) from the HCP1065 Population-Averaged Tractography Atlas (Yeh, 2022). This has with 21209 streamlines and 4915166 vertices. The different formats are generated with the [tff_convert_tractogram.py](https://github.com/tee-ar-ex/trx-python) script.The benchmark was run on a MacBook laptop with a M2 Pro CPU. The ideal format would be both fast to load (to the left on the horizontal axis) and have a small file size (toward the bottom in the right axis). However, compression typically trades load time for file size. Here all data is loaded from a local solid state drive, whereas smaller files would benefit if data was loaded using a slow internet connection. The following file formats are illustrated (except where noted, both positions and indices are stored with 32-bit precision): - vtk: streamlines saved by an [undocumented](https://discourse.vtk.org/t/upcoming-changes-to-vtkcellarray/2066) extension to the [VTK legacy file format](https://vtk.org/wp-content/uploads/2015/04/file-formats.pdf). - tck: [MRtrix format](https://mrtrix.readthedocs.io/en/latest/getting_started/image_data.html#tracks-file-format-tck). @@ -80,4 +80,4 @@ The graph below shows the time load the [left inferior fronto-occipital fascicul - 16.trx: uncompressed TRX format using 16-bit floats for positions (which are not native to JavaScript). - 16z.trx: zip-compressed TRX format using 16-bit floats for positions (which are not native to JavaScript). -![M1 Performance](M1.png) +![M2 Performance](M2.png) diff --git a/graphM1.py b/graphM1.py deleted file mode 100755 index cbe20e6..0000000 --- a/graphM1.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - - -import pandas as pd -from matplotlib import pyplot as plt - -# Set the figure size -plt.rcParams["figure.figsize"] = [7.00, 3.50] -plt.rcParams["figure.autolayout"] = True - -# Create a dataframe -df = pd.DataFrame( - dict( - time=[2354, 3337, 3418, 11509, 15376, 494, 8161, 14928, 21013], - bytes=[217428604, 137615686, 137369684, 59896111, 38597377, 137369222, 62858566, 68746592, 53953006], - points=['vtk', 'tck', 'trk', 'trk.gz', 'trk.zst', 'trx', 'z.trx', '16.trx', '16z.trx'] - ) -) - -# Scatter plot -ax = df.plot.scatter(title='MacBook Air M1', x='time', y='bytes', alpha=0.5) -ax.set_ylim(ymin=0) -# Annotate each data point -for i, txt in enumerate(df.points): - ax.annotate(txt, (df.time.iat[i], df.bytes.iat[i])) - -#plt.show() -plt.savefig('M1.png', dpi=300) \ No newline at end of file diff --git a/graphM2.py b/graphM2.py new file mode 100755 index 0000000..aae754d --- /dev/null +++ b/graphM2.py @@ -0,0 +1,32 @@ +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns + +# Create a dataframe +data = { + 'format': ['vtk', 'tck', 'trk', 'trk.gz', 'trk.zst', 'trx', 'z.trx', '16.trx', '16z.trx'], + 'time': [459, 866, 924, 3881, 4012, 159, 2763, 373, 2708], + 'bytes': [113218694, 59236654, 59067828, 28746432, 28291562, 59152204, 28502799, 29661208, 24245538] +} + +df = pd.DataFrame(data) + +# Define a color palette with as many colors as there are formats +colors = sns.color_palette('husl', n_colors=len(df['format'])) + +# Set a larger figure size +plt.figure(figsize=(10, 5)) + +# Create a scatter plot with different colors for each format and double the diameter of each point +ax = sns.scatterplot(x='time', y='bytes', hue='format', palette=colors, s=200, data=df) + +# Set the legend outside the plot for better visibility +ax.legend(title='Format', bbox_to_anchor=(1.05, 1), loc='upper left') + +plt.title('Relative Time vs Size for Each Format') +plt.xlabel('Relative Time') +plt.ylabel('Size (Bytes)') + +plt.tight_layout() # Adjust layout to prevent clipping +#plt.show() +plt.savefig('M2.png', dpi=300) \ No newline at end of file diff --git a/streamlineIO.mjs b/streamlineIO.mjs index 01f553e..cfe1413 100644 --- a/streamlineIO.mjs +++ b/streamlineIO.mjs @@ -591,7 +591,9 @@ async function readTRX(url, urlIsLocalFile = false) { nval = data.length / 2; //2 bytes per 16bit input vals = new Float32Array(nval); var u16 = new Uint16Array(data.buffer); - for (let i = 0; i < nval; i++) vals[i] = decodeFloat16(u16[i]); + const lut = new Float32Array(65536) + for (let i = 0; i < 65536; i++) lut[i] = decodeFloat16(i) + for (let i = 0; i < nval; i++) vals[i] = lut[u16[i]] } else continue; //not a data array nval = vals.length; //next: read data_per_group