According to the Kepler whitepage, the warp size for a Kepler based GPU is 32 and each multiprocessor contains 4 warp schedulars which select two independant instructions from a chosen warp. This means that each clock cycle, 32*4*2 = 256 calculations are to be performed, but a multiprocessor only contains 192 ALUs. How are these calculations performed then?
1
There are 1 best solutions below
Related Questions in CUDA
- CUDA matrix inversion
- How can I do a successful map when the number of elements to be mapped is not consistent in Thrust C++
- Subtraction and multiplication of an array with compute-bound in CUDA kernel
- Is there a way to profile a CUDA kernel from another CUDA kernel
- Cuda reduce kernel result off by 2
- CUDA is compatible with gtx 1660ti laptop GPU?
- How can I delete a process in CUDA?
- Use Nvidia as DMA devices is possible?
- How to runtime detect when CUDA-aware MPI will transmit through RAM?
- How to tell CMake to compile all cpp files as CUDA sources
- Bank Conflict Issue in CUDA Shared Memory Access
- NVIDIA-SMI 550.54.15 with CUDA Version: 12.4
- Using CUDA with an intel gpu
- What are the limits on CUDA printf arguments?
- Why do CUDA asynchronous errors occur? (occur on the linux OS)
Related Questions in KEPLER
- kepler python save kepler but not show in jupyter
- Newton-Raphson method on the hyperbolic Kepler's equation
- How to Load a Arc layer from json data through coding using reacJs?
- What's wrong with kepler reducer?
- how can i get csv or json or geojson from osmnx?
- Error when visualizing data in kepler gl in jupyter notebook
- Eclipse Kepler won't start - Java error message
- use multiple stores in a single react project
- How to disable side pannel of kepler.gl map?
- How to apply filter , time visualization in kepler.gl Through code?
- Unable to Install Kepler React - TypeScript
- How to make geoJson files and visualise them
- Displaying orbit with vpython using kepler's equation but the planet won't orbit
- Warp scheduling in Kepler GPU
- Error when install ZK Studio on Eclipse Kepler
Related Questions in WARP-SCHEDULER
- In NVIDIA gpu, Can ld/st and arithmetic instruction(such as int32 fp32 )run simultaneously in same sm?
- How to a warp cause another warp be in the Idle state?
- Is there a way to explicitly map a thread to a specific warp in CUDA?
- Questions of resident warps of CUDA
- Why there are two warp schedulers in a SM of GPU?
- CUDA Warps and Thread Divergence
- CUDA Kepler: not enough ALUs
- What is the instruction issue time latency of the warp schedulers in CUDA?
- cuda: warp divergence overhead vs extra arithmetic
- cuda shared memory and block execution scheduling
- blocks, threads, warpSize
- How do CUDA blocks/warps/threads map onto CUDA cores?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The actual whitepaper wording is as follows:
The interpretation is that in any given cycle, at most 4 warps can be scheduled. For each of those 4 warps, (up to) 2 independent instructions per warp can be dispatched. "can be dispatched" is not the same as "will be dispatched".
The 192 ALUs you are referring to are related to single precision floating point arithmetic operations (SP units for the purpose of this discussion). However there are other functional units in the SM(X) such as double precision floating point arithmetic units (DP units), load/store units (LD/ST units), and other units. Refer to the diagram on page 8 of the whitepaper linked above. If a given set of instructions were all using the SP units, then 8 instructions could not be scheduled, at most 6 (32x6=192) could be scheduled. However, if the instruction mix contains independent instructions of different types (e.g. loads, stores, SP ops, etc.) then the limitation of 192 SP units will not necessarily be the determining factor in how many instructions actually get scheduled in any given cycle.
The bottom line is that 8 instructions (2 inst/scheduler x 4 schedulers) per cycle is the maximum possible instruction issue rate per SM(X). Real world codes do not necessarily achieve this. It's entirely possible that in a given cycle no instructions could get issued, due to stall/starvation conditions.