Skip to content

Instantly share code, notes, and snippets.

@gravitino
Last active April 20, 2021 19:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gravitino/d62e735b1e4d2caeed7933fb7026d298 to your computer and use it in GitHub Desktop.
Save gravitino/d62e735b1e4d2caeed7933fb7026d298 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"elapsed time: 579 ms (align zdist fft)\n",
"elapsed time: 354 ms (align zdist naive)\n",
"elapsed time: 12 ms (align zdist fft)\n",
"elapsed time: 87 ms (align zdist naive)\n",
"elapsed time: 12 ms (align zdist fft)\n",
"elapsed time: 88 ms (align zdist naive)\n",
"elapsed time: 12 ms (align zdist fft)\n",
"elapsed time: 88 ms (align zdist naive)\n",
"elapsed time: 12 ms (align zdist fft)\n",
"elapsed time: 88 ms (align zdist naive)\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f2fb07b8fd0>]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"for _ in range(num_repeats):\n",
" with ra.util.Timer(\"align zdist fft\"):\n",
" ying = ra.ED.zdist(query_gpu, subject_gpu, mode=\"fft\")\n",
" with ra.util.Timer(\"align zdist naive\"):\n",
" yang = ra.ED.zdist(query_gpu, subject_gpu, mode=\"naive\")\n",
"\n",
"assert(cp.allclose(ying, yang))\n",
" \n",
"k = int(cp.argmin(yang))\n",
"znorm = lambda x : (x-np.mean(x))/np.std(x, ddof=0)\n",
"pl.plot(znorm(query))\n",
"pl.plot(znorm(subject[k:k+len(query)]))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment