Comments (2)
Hi,
- The current idea of DALI is to allow easy offload of data loading and augmentation to the GPU. It was designed for scenarios where CPU is the bottleneck. In your case CPU shouldn't be and what you can do is to construct pipeline by assigning some operations to CPU and the rest to GPU that CPU is also utilized.
- This relates to a number of CPU thread that is used to perform CPU operators. When you create pipeline you may assign it to given GPU by providing
device_id
, by providingnum_threads
you tell how big CPU thread pool should be. There is one thing that we need to document better, nvJpeg is executed partially by CPU, partially by GPU. For CPU it also creates a thread pool which size can be defined by passingnum_threads
argument. If you setnum_threads
to low value it could hurt performance. Please check how your different values work for you. - It is true, additional memory is required so data processing could be performed by DALI on GPU. We are working on reducing memory pressure as @ptrendx stated in #21. In your case it makes you use small batch sizes and this could affect overall performance.
- If you are asking for speed results for configurations where CPU processing power is not a bottleneck (like 1xGTX1080P), it should be almost the same comparing to test without DALI (even may be a bit slower due to DALI overhead). In such case, the main benefit of DALI is flexibility and ease of pipeline construction. That is why we don't provide general performance reports. Nevertheless, it is a good point and we may prepare a more thorough performance report.
- nvJpeg is designed to provide Jpeg loading and decoding (mostly), it is not planned to be image processing library. For that DALI can be used and it is not necessarily limited only to Deep Learning applications. If you really need to build an own and custom processing pipeline how about mixing nvJpeg and NPP for processing?"
from dali.
@JanuszL Thank you!
from dali.
Related Issues (20)
- random_resized_crop does not support different image sizes HOT 13
- How exactly does distributing the dataset with DALI/TensorFlow work? HOT 3
- Video Reader performance and alternative considerations HOT 4
- `experimental_fetch_to_device` makes no difference since TF 2.14 HOT 2
- external_source doesn't return last incomplete batch HOT 5
- Video Reader sequence start and end HOT 3
- Is it possible to modify the labels according to the random rotation of images? HOT 5
- Create a pytorch dataloader with 2 data sources HOT 5
- Resize on CPU with output shape coming from an external source operator HOT 3
- webdataset error HOT 2
- AWS DALI video_loader error HOT 3
- why multi-gpu training slower than single gpu HOT 1
- How to manage empty items in a batch? HOT 5
- nvidia.dali.fn.python_function() failed with TypeError HOT 5
- Can I install DALI on CPU node without GPU/CUDA HOT 3
- fn.lookup_table giving wrong result for gpu HOT 5
- Need argmax/argmin operator HOT 1
- How to destory a pipeline? HOT 1
- random crop function HOT 10
- cv2.resize(interpolation=cv2.INTER_LINEAR) different with fn.resize(img, antialias=True, subpixel_scale=True, interp_type=types.DALIInterpType.INTERP_LINEAR, resize_y=target_img_height, max_size=max_width) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dali.