{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pyclesperanto_prototype as cle\n", "\n", "cle.select_device('Intel')\n", "\n", "cle.get_device()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "cle.set_wait_for_kernel_finish(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Centroids of 2D labels" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\users\\rober\\miniconda3\\lib\\site-packages\\pyopencl\\__init__.py:252: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more.\n", " warn(\"Non-empty compiler output encountered. Set the \"\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "labels = cle.artificial_tissue_2d(width=2048, height=1024, delta_x=128, delta_y=96)\n", "cle.imshow(labels, labels=True)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU centroid took 1.1562561988830566 s\n", "CPU centroid took 0.16156959533691406 s\n", "CPU centroid took 0.16223526000976562 s\n", "CPU centroid took 0.15407109260559082 s\n", "CPU centroid took 0.1644303798675537 s\n", "CPU centroid took 0.15861201286315918 s\n", "CPU centroid took 0.17134928703308105 s\n", "CPU centroid took 0.15012264251708984 s\n", "CPU centroid took 0.1633436679840088 s\n", "CPU centroid took 0.16113853454589844 s\n" ] } ], "source": [ "import time\n", "\n", "pointlist = None\n", "for i in range(0, 10):\n", " start_time = time.time()\n", " pointlist = cle.centroids_of_labels(labels, pointlist, use_gpu=False)\n", " print(\"CPU centroid took \" + str(time.time() - start_time) + \" s\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GPU centroid took 0.030202388763427734 s\n", "GPU centroid took 0.016168594360351562 s\n", "GPU centroid took 0.014994382858276367 s\n", "GPU centroid took 0.014958620071411133 s\n", "GPU centroid took 0.014963150024414062 s\n", "GPU centroid took 0.014312505722045898 s\n", "GPU centroid took 0.013578176498413086 s\n", "GPU centroid took 0.012742757797241211 s\n", "GPU centroid took 0.013961553573608398 s\n", "GPU centroid took 0.013993263244628906 s\n" ] } ], "source": [ "pointlist = None\n", "for i in range(0, 10):\n", " start_time = time.time()\n", " pointlist = cle.centroids_of_labels(labels, pointlist, use_gpu=True)\n", " print(\"GPU centroid took \" + str(time.time() - start_time) + \" s\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Centroids of 3D labels" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "stack = cle.create([128, 256, 256])\n", "\n", "for z in range(0, 128):\n", " cle.copy_slice(labels, stack, z)\n", "\n", "cle.imshow(stack, labels=True)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU centroid took 2.216216564178467 s\n", "CPU centroid took 1.6247587203979492 s\n", "CPU centroid took 1.5847125053405762 s\n", "CPU centroid took 1.5741355419158936 s\n", "CPU centroid took 1.6029059886932373 s\n", "CPU centroid took 1.561384916305542 s\n", "CPU centroid took 1.599116325378418 s\n", "CPU centroid took 1.5346126556396484 s\n", "CPU centroid took 1.5528230667114258 s\n", "CPU centroid took 1.526472806930542 s\n" ] } ], "source": [ "import time\n", "\n", "pointlist = None\n", "for i in range(0, 10):\n", " start_time = time.time()\n", " pointlist = cle.centroids_of_labels(stack, pointlist, use_gpu=False)\n", " print(\"CPU centroid took \" + str(time.time() - start_time) + \" s\")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GPU centroid took 0.1368398666381836 s\n", "GPU centroid took 0.11569046974182129 s\n", "GPU centroid took 0.12650823593139648 s\n", "GPU centroid took 0.11538314819335938 s\n", "GPU centroid took 0.11362409591674805 s\n", "GPU centroid took 0.12366700172424316 s\n", "GPU centroid took 0.12466621398925781 s\n", "GPU centroid took 0.11302542686462402 s\n", "GPU centroid took 0.12337470054626465 s\n", "GPU centroid took 0.11266732215881348 s\n" ] } ], "source": [ "pointlist = None\n", "for i in range(0, 10):\n", " start_time = time.time()\n", " pointlist = cle.centroids_of_labels(stack, pointlist, use_gpu=True)\n", " print(\"GPU centroid took \" + str(time.time() - start_time) + \" s\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.3" } }, "nbformat": 4, "nbformat_minor": 4 }