This repository has been archived by the owner on Sep 27, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Robert Grupp edited this page Sep 13, 2020
·
43 revisions
WIKI IS STILL UNDER CONSTRUCTION
- Introduction
- Walkthrough
- Frequently Asked Questions (FAQ)
- Code and Programs for Related Publications
TODO
This section outlines a walkthrough, or tutorial, of the basic functionality of the JHMR software and how it may be applied to solve common computer assisted surgery workflow tasks, ranging from preoperative planning to intraoperative navigation. All data used in the workflow is either obtained from freely available online sources, such as The Cancer Imaging Archive (TCIA), data derived by processing the data available online, simulating new data, or some combination therein. Links to all of the derived and simulated data files are provided here.
Walkthrough Outline:
- Obtaining the tools
- Preoperative planning
- Simulated data
- Intraoperative 3D/3D registration
- Intraoperative 2D/3D (fluoroscopy/CT) registration
Help generate this section by asking some questions via the repository issues page, email, or twitter!
- Are there pre-compiled binaries for Windows/Mac/Linux?
- Not yet! Once these are available they will be posted on the repository page under releases. Stay tuned.
- How do I select a specific GPU (or OpenCL device) to use on a system with several GPUs (OpenCL devices) available?
- This may be accomplished by setting the desired device ID with the
--ocl-id
flag or through the use of environment variables (e.g.CUDA_VISIBLE_DEVICES
). See this page for further information.
- This may be accomplished by setting the desired device ID with the
- Is it possible to run on a system that does not have a GPU or a less-capable GPU (e.g. a server)?
- Yes! Select the CPU backend by passing
--backend cpu
or use the OpenCL backend with a compatible CPU device (e.g. something like--backend ocl --ocl-id "Intel(R)Core(TM)[email protected]"
. Tools that do not provide a backend flag only perform CPU processing. See this page for further information.
- Yes! Select the CPU backend by passing
- My program crashed with some strange OpenCL error message - what happened?
- This usually occurs when there are insufficient resources, such as memory, on the OpenCL device. The exact reason depends on the processing involved, but typically adjusting the parameters that effect the amount of memory required may resolve the issue. For example, lowering the population sizes for the CMA-ES or Differential Evolution registration strategies will reduce the number of DRRs created during each optimization iteration, and therefore reduce the memory footprint. This may also occur if your code chains together OpenCL ray casters and similarity metrics, but different contexts or command queues are used for each object.
- Why did you choose OpenCL for GPU computations instead of CUDA?
- Although CUDA kernels are generally more computationally efficient than their OpenCL counterparts, using OpenCL avoids a lock-in to NVIDIA GPUs. Since most NVIDIA, AMD, and Intel GPUs provide OpenCL support, nearly any hardware setup, ranging from entry-level laptops to state-of-the-art compute clusters, may leverage GPU support. This should enable any interested user to run this software. Support for CUDA, Metal, and Vulkan processing backends is planned for future work.
TODO: introduce
- TBME
- IPCAI/IJCARS
- PMB
- SPIE MI/CAOS
- Home
- FAQ
-
Walkthrough
- Obtaining the Tools
- Preoperative
- Simulated Data
- 3D/3D Registration
- 2D/3D Registration
- Data
- Other Stuff