Gigapixel AI v4.9.2

Hello, @AiDon,

Thank you for the feedback. I was trying to answer from the previous post (https://community.topazlabs.com/t/gigapixel-ai-4-9-2-3b-is-available/14881/5), but I first need to share something with you.
Above all, it would be better for me to explain the current logic about calibrating in Gigapixel AI. Then we can figure out where the problems come from.

You have a Dual GPU system, 1) Integrated GPU - intel HD630 and 2) Discrete/Dedicated GPU - Geforce GTX-1050.
From the preferences panel, let me tell you what each option means: (even if you have already known)

  1. Enable discrete GPU:
    • Yes: Main AI gigapixel model (You can see later why I mentioned the Main model) will be processed through our OpenGL implementation module on dedicated GPU (GTX-1050)
    • No: AI gigapixel model processing will not use OpenGL implementation (or not using GTX-1050), that is, will use either OpenVINO module or Tensorflow CPU module (* Tensorflow API can support GPU, but we don’t use Tensorflow GPU option in Gigapixel AI, while Mask AI uses Tensorflow GPU for discrete GPU.) depending on the following selection (Enable Intel OpenVINO).
  2. Enable Intel OpenVINO:
    ( Here, there is one thing we need to know, Gigapixel AI has a Face refinement option which also utilizes another AI model, but unfortunately, we don’t have our OpenGL implementation for the model, that means, we can not use discrete GPU for this option and we have to run AI model with OpenVINO module or Tensorflow CPU module. So even if “Enable discrete GPU” is Yes, we should still select either OpenVINO (Yes) or Tensorflow CPU (No) for Face refinement option in Enable Intel OpenVINO.)
    • Yes: AI model will be processed by the Intel OpenVINO module which uses separated AI models optimized to Intel CPU and integrated GPU (iGPU). So if you selected Yes in Enable discrete GPU, here OpenVINO will run for only Face refinement option, not for main gigapixel AI model. But if you selected No in Enable discrete GPU, OpenVINO will run for both main gigapixel AI model and face refinement related model.
    • No: like OpenVINO, Tensorflow CPU will work instead of OpenVINO. This one uses only CPU and takes much longer time. So this option will be like a backup option just in case of non-intel CPU or old intel CPU not supported by OpenVINO module.

Now, let’s see the calibration procedure by clicking “Use recommended settings”
The purpose of calibration is automatically to set up the options (Enable discrete GPU and Enable Intel OpenVINO) by testing speed performance and any failing case. (In a failing case, we force to select another option)
This calibration procedure will go through 4 modules now.

  1. OpenGL module for discrete GPU (GTX-1050) - will take a small size block (448 x 448) and test it through GL AI model. The block size for testing will be a little bit different based on “Allowed graphics memory consumption” selection (High/Medium/Low) or VRAM size/Preview limit.
  2. Tensorflow CPU module (Intel Core i7-7700HQ CPU) - will take a fixed size block (192 x 192) and test it through TF AI model.
  3. OpenVINO module - will take a fixed size block (192 x 192) and test it through both CPU (Intel Core i7-7700HQ CPU) and iGPU (Intel HD630) separately.
    In each performance test, we iterated 2 times, and choose the second result of speed performance because the first interaction includes model loading step which will take a much longer time. So we wanted to exclude the loading time for testing.
    Here is an example of performance results from your previous log file.

Benchmark Results

  • GPU processing speed = 10.31 sec/megapixel
  • CPU TF processing speed = 54.95 sec/megapixel
  • CPU VINO processing speed = 11.33 sec/megapixel
  • GPU VINO processing speed = 10.71 sec/megapixel

As you can see, base on the result, the calibration tool will select discrete GPU for main AI gigapixel model, and select OpenVINO for face refinement like the followings:

  • Enable discrete GPU : Yes
  • Enable Intel OpenVINO : Yes

I am sure if this calibration tool for a single block is accurate for comparing speed performance among available devices. Nevertheless, we still need to improve more because there are some factors making something different between calibration testing and a whole image processing time. One is the number of image blocks from testing and real processing. We are using multiple image blocks for a whole image with the overlapped area between blocks. And another factor is the different block sizes in between OpenGL module (e.g., 448 x 448) and OpenVINO module (192 x 192). Those factors might make much slower than what we expected based on performance testing with a small single block.

I hope you understand more about our calibration tool procedure. Then we can talk more about that. Please feel free to ask us. Thank you so much.

Best,
Myunghoon

3 Likes