Parallel GPU Power

Supercomputer Speed at Zero Cost

GPU card

Finish in Seconds, not Hours

SQL for ArcGIS® Pro runs GPU parallel for processing, using Nvidia-based GPU cards for genuine parallel processing and not just rendering, fully supported with automatic, manycore CPU parallelism. Do in seconds what often takes other packages hours or even days. Even an inexpensive $100 GPU card can deliver performance 100 times faster than GIS or DBMS packages without GPU parallelism.

Image at right: An Nvidia RTX 3090 card provides 10496 GPU cores for general purpose, massively parallel processing. Plug in two for nearly 21000 GPU cores. On a budget? SQL parallel GPU can use a mere $50 GPU card with only a few hundred cores to run 50 to 200 times faster than Arc or Q.

Don't be fooled by packages that say they "use parallel GPU" when all they mean is that they use the GPU for rendering. Rendering isn't parallel computation on the GPU and it won't cut the time it takes for big computations from hours or days to seconds and minutes.

Insist on the real thing: genuine parallel computation using all the GPU cores available, supported by dynamic parallelism that automatically shifts tasks from CPU parallelism, to GPU parallelism, to a mix of both CPU and GPU parallelism, to get the fastest performance possible using all the resources in your system. Only SQL for ArcGIS Pro and other Manifold packages do that.

Benefits

The world's most powerful, fastest desktop SQL now also delivers the lowest cost of ownership. Buy now and get these outstanding benefits:

  • Massively Faster Speed - Get done in seconds what takes minutes or hours without parallel GPU computation.
  • Zero User Effort - SQL for ArcGIS Pro automatically uses GPU with no need for users to do anything different. Life doesn't get any easier than zero effort.
  • Zero Cost - Everybody has a GPU to speed up rendering anyway. Use an Nvidia GPU and you get parallel GPU computation for free.
  • Never Waste Hardware - Plug in multiple cards and SQL for ArcGIS Pro autoconfigures, automatically supporting GPU cards several generations back. Plug in your older cards for even more parallel GPU power.
  • Effortless Upgrades - SQL for ArcGIS Pro automatically includes the latest Nvidia updates. Use the latest cards with zero configuration. Just plug it in and it works.
  • Never Fear Crashes - Parallel code has to be written to a higher standard or it doesn't work at all. SQL for ArcGIS Pro never crashes. Run 10 years, all day, every day, on the toughest, most complicated jobs and never expect to see a crash. Invest quality time into a project with no fear a crash will force you to redo anything.
  • Enjoy Being Smart - In a world of modern GPU cards that provide hundreds of cores for $50 and over a thousand cores for $150, you know it is not smart to run 1980's style software that cannot do parallel GPU computation. Don't be that guy. Enjoy the excitement and deep gratification you get with spectacular new advances in hardware for speed fifty to two hundred times faster at zero extra cost.
  • Better Data Science - More advanced DBMS and automatically CPU and GPU parallelized SQL for better data science.
  • Save Money on Free Software - The biggest cost of doing GIS, ETL, or Data Science is the cost of your time, not low cost licenses. Nothing is as expensive as "free" software without GPU parallelism that costs you hours to do what SQL for ArcGIS Pro does in seconds, or that takes days of playing software developer to do what happens instantly in SQL with a point and click.
  • No Paywalls - Automatic GPU parallelism is built into every SQL for ArcGIS Pro license. You don't have to buy anything extra, install any options, or deal with "you're not licensed for this" messages when you want a big geoprocessing job to run fast. All features are built into every SQL for ArcGIS Pro license. For one low price you get it all.

Massively Parallel Speed

GPGPU stands for General Purpose GPU. It means using a GPU (Graphics Processing Unit) not just as a graphics processor but as a general purpose processor, taking advantage of the hundreds or even thousands of processing cores available on modern GPUs to accomplish computations with massive parallelism and speed. As fast as Parallel CPU operation can be, when SQL for ArcGIS Pro goes beyond that to dispatch massively parallel tasks to GPGPU, it can absolutely crush anything that is limited to just the CPU.

It is not an exaggeration to say that massively parallel GPGPU technology could be the most revolutionary thing to happen in computing since the invention of the microprocessor. It is that fast, that inexpensive and has that much potential. GPU is so important that all SQL for ArcGIS Pro users should insist the computer hardware they procure is GPGPU-enabled. GPGPU computation requires 64-bit Windows and an NVIDIA GPU of Fermi generation or later. SQL for ArcGIS Pro automatically loads modules for NVIDIA compute capability 2.0 (Fermi), 3.0 (Kepler) and 5.0 (Maxwell).

Ensuring your system is GPGPU-capable might cost you zero extra, because modern systems all have GPUs for graphics anyway and many systems use NVIDIA chips. Reasonably recent computers with an NVIDIA GPU already are GPGPU-capable. If not, adding a GPGPU-capable card costs almost nothing because for $100 you can buy a GPU card with hundreds of cores that will absolutely crush any CPU.

SQL for ArcGIS Pro works perfectly to deliver GPGPU power even using inexpensive GeForce series cards that anyone can afford. SQL for ArcGIS Pro also runs with high-end Tesla and Quadro NVIDIA cards, which feature ECC memory and other enhanced features for the most demanding applications.

SQL for ArcGIS Pro will automatically use multiple GPU cards to run thousands of cores up to however many GPU chips your NVIDIA driver software supports. Four higher end GPU cards with 5120 cores each can provide a total of 20480 cores. SQL for ArcGIS Pro can use them all.

Parallel Processing

Important: To ensure compatibility with NVIDIA hardware, for GPU-parallel operation SQL for ArcGIS Pro uses NVIDIA drivers and supporting software such as CUDA. NVIDIA only supports 64-bit Windows for GPGPU operation, therefore, 64-bit Windows is required for GPU parallelism in SQL for ArcGIS Pro. Running 32-bit Windows, SQL for ArcGIS Pro will be CPU-parallel but not GPU-parallel.

SQL for ArcGIS Pro is inherently a parallel processing system. Whenever it makes sense to do so, SQL for ArcGIS Pro will automatically utilize multiple processors or multiple processor cores by parallelizing a task into multiple threads for execution on more than one core. Given hyperthreading plus multi-core CPUs it is now routine to encounter desktop systems with 8, 16, 32 or even more CPU cores available. See the Parallel CPU page for info on CPU parallelism in SQL for ArcGIS Pro.

In addition to this basic, parallel processing capability using multiple CPU cores SQL for ArcGIS Pro also includes the ability to utilize massively parallel multiprocessing utilizing GPUs, potentially launching tasks on thousands of processing cores at once for true supercomputer computational performance, far beyond what can be achieved with CPUs.

SQL for ArcGIS Pro automatically parallelizes and dispatches as many tasks as make sense to GPGPU, with automatic fallback to parallelized tasks dispatched to multiple CPU cores if a GPU is not available. CPU parallelism in SQL for ArcGIS Pro is also a key part of providing massively parallel GPGPU function, because many CPU cores working in parallel are required to ensure maximum use of GPU. A single CPU core running non-parallel is not fast enough to keep up.

Automatic GPGPU Utilization

GPGPU acceleration works everywhere in SQL for ArcGIS Pro where worthwhile work arises: in the SELECT list, in WHERE, in EXECUTE, ...everywhere. For example, if you add to a table a computed field that combines multiple tiles together, that computed field will use GPGPU. If you do some tile math in a FUNCTION, that FUNCTION will use GPGPU as well.

You don't have to write something special or learn programming environments like CUDA. Use the same SQL you already know and SQL for ArcGIS Pro automatically parallelizes it to use GPGPU. If you don't use SQL but prefer point-and-click SQL for ArcGIS Pro templates, those automatically use GPGPU as well.

When you write something like SELECT tilea + tileb ∗ 5 + tilec ∗ 8 FROM ..., the SQL engine takes the expression with three additions and two multiplications, generates GPGPU code for that function in a Just In Time, JIT manner and uploads the resulting code to GPGPU to execute the computations.

To save execution time and boost efficiency, JIT code generation for GPGPU functions is cache-friendly for the driver. Running the same query again, or even running different queries for which the GPGPU expressions are sufficiently similar to each other, will engage the compilation cache maintained by the driver

If you save the project using that computed field or FUNCTION into a Manifold .map file and then bring that .map file onto a machine running SQL for ArcGIS Pro that has no GPGPU, the computed field will be executed by SQL for ArcGIS Pro automatically falling back to using CPU parallelism, taking advantage of as many CPU cores are available using CPU core parallelism instead of GPGPU. If you bring the .map file back onto a machine that has a GPGPU, SQL for ArcGIS Pro will automatically use the GPGPU.

Other optimizations play along transparently. If a particular subexpression inside of an expression that runs on GPGPU is a constant in the context of that expression, it will only be evaluated once. If an expression that can run on GPGPU refers to data from multiple tables and has parts that only reference one of these tables, the join optimizer will split the GPGPU expression into pieces according to dependencies and will run these pieces separately and at different times, minimizing work. A SELECT with more than one thread will run multiple copies of GPGPU expressions simultaneously. There are many other similar optimizations automatically integrated with GPGPU utilization.

Some operations are so trivial in terms of computational requirements it makes no sense to dispatch them to GPGPU, the classic case being scalars (trivial) as opposed to tiles (more bulk). CASE expressions, conditionals and similar constructions or functions that operate on scalar values stay on the CPU while functions that operate on tile values generally go to GPGPU unless they use tiles in a trivial fashion, such as making a simple comparison.

SQL's automatic CPU parallelism with typical multicore CPUs is so fast that keeping lighter operations on parallel CPU is faster than packaging them for dispatch to GPU. Each processor core in a modern CPUs is a very powerful computing machine: When SQL for ArcGIS Pro parallelizes a task to sixteen or twenty four CPU hypercores that is a massive amount of computing power. SQL for ArcGIS Pro automatically adapts to however many CPU cores are in the computer: even inexpensive Threadrippers provide 48 threads, and SQL for ArcGIS Pro can exploit every one of them to surge through even the most demanding jobs.

Examples:

  • Abs(v) takes a number and returns a number: it stays on CPU.
  • TileAbs(t) takes a tile and returns a tile: it can go to GPGPU.
  • TileContrast(t, c, p) takes a tile and two numbers, and returns a tile: it can go to GPGPU.
  • TileToValues stays on CPU since it is simply splitting pixels out of tile with no need for GPGPU for something so simple. If the operation was doing a computation on the pixels first and then splitting it might then be sent to GPGPU.

CASE conditions are scalar, so they stay on CPU. When CASE is used with tiles whether it is faster to dispatch the task to GPGPU depends on exactly how the tiles are used. Some examples where vXX are scalar values and tXX are tiles:

CASE WHEN v=2 THEN t1 ELSE t2 END

In the above not much is being done with the tiles so the entire construction stays on CPU.

CASE v WHEN 3 THEN TileAbs(t1)+ t2*t3 + TileSqrt(t4) ELSE t1 END

In the above, the expression in THEN will go to GPGPU while the rest of CASE will stay on CPU.

CASE WHEN t1 < t2 THEN 0 ELSE 8 END

In the above the comparison in WHEN does use tiles but it uses them like raw binary values, similar to how ORDER works, so it is more efficient to leave it on CPU.

How Fast Is SQL for ArcGIS Pro GPGPU?

If you are doing computations it's fast. Really fast. Gains are usually from 20 times faster to 100 times faster running typical computations on low end, dirt cheap GPU cards. Running complex computations on faster cards, performance can be 100 to 200 times faster than using CPU alone. It's fairly common to do in a second or two what takes more than five minutes without SQL for ArcGIS Pro.

If your time is worth more than minimum wage and you're doing anything that requires your machine to think at a higher level than your coffee pot timer, you'll often pay back the cost of a SQL for ArcGIS Pro license the first time you use it for anything serious. It's that fast. Nothing else comes close.

The NVIDIA Quadro QV100 GPU card illustrated above provides 5120 GPU CUDA cores that deliver 110 TeraFLOPS of performance. SQL for ArcGIS Pro will use them all for massively parallel power. Plug two of these cards in your desktop computer and you have 10240 GPU cores. SQL for ArcGIS Pro will use them all for supercomputer performance. At 220 TeraFLOPS a desktop computer with two higher end NVIDIA cards is 150 times faster than the fastest supercomputer in the world in 1997, the ASCI RED supercomputer built at Sandia for thermonuclear weapons simulations. That's over 150 times faster!

220 TeraFLOPS is so much power it is difficult for humans to imagine. To match what four such cards can do in one second a human would have to do a floating point calculation every second, 24 hours a day nonstop, every day, for over seven million years.

It's true that such staggering power is far more than most GIS tasks require. For almost all GIS tasks a single, low-cost, GPU card is plenty: no need to spend thousands per card. But it is still cool - whether you are running 100 cores or 20,000 cores - that SQL for ArcGIS Pro will take advantage of every last core that can help the job run faster. SQL for ArcGIS Pro makes that power available to you with a point and click. No other desktop GIS or spatial engineering software can do that.

Parallel CPU or Parallel GPU? Which is better?

Easy. Use both! GPGPU is so fast and so inexpensive that no matter how many CPU cores you have it makes sense to also have a GPU, so you can run GPU parallel. Don't even think about it. Just do it.

Likewise, manycore CPUs have become so inexpensive that it's an automatic move to have a manycore CPU as well. Consumer desktop machines now feature inexpensive 12 core / 24 thread Ryzen processors, and even budget priced PCs have 8 core / 16 thread CPUs.

Systems with many CPU cores will also be able to utilize GPGPU more effectively, because SQL for ArcGIS Pro's automatic CPU parallelism will launch tasks in parallel on many CPU cores better to keep up with the insane speed of GPGPU. The main advantage that brings is that with SQL for ArcGIS Pro you can use the power of GPU even with very inexpensive GPU cards.

The biggest technical challenge with advanced GPUs is keeping them busy. Hundreds or thousands of GPU cores are so fast they easily finish tasks that just one CPU core can send them, and then they wait around for something more to do. That's why first and second generation GPGPU applications quickly top out.

Such applications are not parallel but run conventional single core software that dispatches tasks to GPGPU. But non-parallel, single core software cannot remotely keep up with what a thousand GPU cores can do, let alone five thousand or ten thousand GPU cores. To effectively make use of GPU cores the system that feeds them must be totally parallel as well, using many CPU cores in parallel. That's the hallmark of a third or fourth generation fully parallel application like SQL for ArcGIS Pro.

The more CPU cores you have the better your system can load your GPU cores. Manifold technology automatically utilizes many CPU cores in parallel to dispatch massively parallel tasks into many GPU cores. It's all automatic with no code or anything special from you. Just write the SQL you already know or launch point-and-click templates in SQL for ArcGIS Pro and everything happens automatically.


Buy Now via the Online Store

Buy SQL for ArcGIS® Pro on the Online Store. The store is open 24 hours / seven days a week / every day of the year. Orders are processed immediately with a serial number sent out by email in seconds. Enjoy the world's best desktop spatial SQL today!

 Click to begin shopping

Manifold

Terrain elevations and bathymetry by the Gulf of Aden off the tip of the Horn of Africa, from US Space Shuttle SRTM data. Colored and hill shaded on the fly with a quantized elevation palette.



About Manifold

Manifold® products deliver quality, performance and value in the world's most sophisticated, most modern and most powerful spatial products for SQL, GIS, ETL, DBMS, and Data Science. Total integration ensures ease of use, amazing speed, and unbeatably low cost of ownership. Tell your friends!

Free Viewer - Illustrations and videos often show the free Manifold Viewer in action. Viewer can connect to and visualize all data sources available to SQL for ArcGIS® Pro.

Questions? Contact sales@manifold.net. We're happy to help!