[root]/CCA/Components/Schedulers
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 179 (100.0%) | 2514 (100.0%) | 14.0 |
ahumphrey | 49 (27.4%) | 1229 (48.9%) | 25.0 |
qymeng | 73 (40.8%) | 914 (36.4%) | 12.5 |
harman | 19 (10.6%) | 281 (11.2%) | 14.7 |
jsutherland | 37 (20.7%) | 58 (2.3%) | 1.5 |
dav | 1 (0.6%) | 32 (1.3%) | 32.0 |
Make sure to only init and clear GPU-DW if actualy using devices. This code was executing when HAVE_CUDA was defined without SUS explicitly getting the -gpu option.
0 lines of code changed in 2 files:
Cleanup preallocateDeviceMemory() using subtype information from GridVariables. Much cleaner.
Fix incorrect position of mutex unlock in device/host copy methods.
0 lines of code changed in 2 files:
Complete support for GPUStencil7.
A cleaner solution would be quite easy with type information support for GPU Variables. This will be the next step.
Also some code cleanup.
224 lines of code changed in 1 file:
Copy the correct number of bytes back from the device in postD2HCopies
Cleanup some comments in Task.h
1 lines of code changed in 1 file:
Begin GPU ParticleVariable support.
0 lines of code changed in 4 files:
* Fix GPUReductionVariable support; adhere to default material index being -1 for ReductionVariables in general.
* Some code cleanup in Unified scheduler.
86 lines of code changed in 3 files:
Finish support for GPUReductionVariable.
100 lines of code changed in 3 files:
Cleanup some debug output.
5 lines of code changed in 2 files:
* Working support for GPU ReductionVariables.
* Also made OnDemandDataWarehouse aware of "SingleDevice" DebugStream when creating GPU Datawarehouses.
266 lines of code changed in 4 files:
Some cosmetic and debug output changes.
6 lines of code changed in 1 file:
Add Unified Scheduler support for automatic copying of generic GridVariables to the GPU. This support can be easily extended to Stencil7, ParticleVariable, etc with an expanded inheritance heirarchy of "GPUVariables":
GPUVariable
|------GPUGridVariableBase
| |------GPUGridVariable<T>
|------GPUReductionVariableBase
| |------GPUReductionVariable<T>
|------GPUStencil7Base
| |------GPUStencil7<T>
|------GPUParticleVariableBase
| |------GPUParicleVariable<T>
* Need to implement a cleaner way to "getRegion" for RMCRT. This works for now.
* Also some small changes to the UnifedSchedulerTest example.
* Fix typo in RayGPU.cc
371 lines of code changed in 4 files:
get() & getModifiable()
If an error is thrown only print the error on thread 0 & block 0.
19 lines of code changed in 1 file:
Fix a failing test by going back to std::is_sorted()
0 lines of code changed in 2 files:
It looks like ComputeSet implements an is_sorted member function. Switch to use that where applicable.
2 lines of code changed in 1 file:
Fix another namespace clash.
2 lines of code changed in 1 file:
This one has been a long time coming.
Rip out the standard namespace opening that has been polluting header files throughout the framework. This crept into all sorts of places.
DO NOT open namespaces in header files. Ever.
47 lines of code changed in 31 files:
Increased
MAX_NAME from 10 -> 20
get() & getModifiable()
- output detailed information when a GPUDataWarehouse item cannot be found.
39 lines of code changed in 2 files:
fixed compiler warnings
Using "d_" for global variables.
35 lines of code changed in 2 files:
More descriptive error messages.
Fixed typo in variable name.
23 lines of code changed in 1 file:
Add support for post GPU kernel processing callback.
A GPU task will be called multipule times and each time an event argument will be passed.
The task function can then use the event to decide what to run when
1) Task::CPU task is scheduled to run on CPU
2) Task::GPU task is scheduled to run on GPU
3) Task::postGPU task is finished execution on GPU, DW has been copied back.
CPU only task interface is not unchanged.
31 lines of code changed in 4 files:
fix a bug in find_sendset from last commit.
0 lines of code changed in 2 files:
Add support for arbitrary Uintah constVariables to return their data sizes (templated) as well as copy their underlying data to a destination buffer for automatic host<-->device copies.
Also make UnifiedScheduler a friend of OnDemandDataWarehouse.
1 lines of code changed in 1 file:
Add support for single GPU usage on multi-GPU nodes. This should ease the pain of debugging in multi-GPU environments.
8 lines of code changed in 1 file:
Add support for arbitrary Uintah Variables to return their data sizes (templated) as well as copy underlying data to a destination buffer.
This functionality will be essential for the Unified Scheduler to genericaly handle automatic copying of any Uintah Variable (of type<T>). Note: most of this functionality analogous to the preparing MPI buffers for Uintah variables.
6 lines of code changed in 2 files:
fix a particle sending state thread safety issue.
16 lines of code changed in 3 files:
add const GPU Grid Variable support
42 lines of code changed in 4 files:
More descriptive printf statements when there's an error.
Formatting
- consistent indentation, added horizontal/vertical spaces.
149 lines of code changed in 2 files:
Revert previous change. It doesn't work for all task.
0 lines of code changed in 1 file:
More descriptive multiple computes message.
9 lines of code changed in 3 files:
Cleanup misleading typo in Task class code:
"void* device" -> "void* stream"
0 lines of code changed in 1 file:
Allocate MPI communicators based on taskgraph.
This fixed a hung when there are large number of reduction tasks in the taskgraph.
1 lines of code changed in 1 file:
Change UnifiedScheduler numthreads range message to, [2,64]
1 lines of code changed in 1 file:
Added array boundary checking for GPU varaible.
Fixed multi-GPU issue.
58 lines of code changed in 3 files:
detect and report GPU task kernel error
56 lines of code changed in 5 files:
better multi-GPU debug output
19 lines of code changed in 3 files:
Cleanup old GPU interface.
0 lines of code changed in 1 file:
Implemented a lightweight version of GPUDataWarehouse, GPUGridVariable and GPUArray3D inside GPU.
This commit included a new set of interfaces for better supporting GPU task.
See example in Examples/UnifiedSchedulerTest
467 lines of code changed in 11 files:
support C++11 style hash map
6 lines of code changed in 1 file:
Updates to allow for the use of the Boost hashmap (if Boost is enabled).
This is mostly necessary for the GPU build as we are forced to not use
the (default/normal) tr1 hashmap (as nvcc can't compile it) and this
causes us to default to the (deprecated) gnu hashmap which causes a
zillion warning messages to be displayed during compilation.
M configure
M configure.ac
- Fix help message for ray scatter flag (was reporting to use --ray-scatter
when it should (and now does) say --enable-ray-scatter.
- Move hash map check to after boost check.
- If boost is found, then use the boost hash map.
M include/sci_hash_map.h
- Add in USE_BOOST_HASHMAP mapping.
- Add some whitespace to make file a little more humanly parsable.
M include/sci_algorithm.h
- Fix title of file in file to be accurate (fixes a copy/paste error).
M CCA/Components/Schedulers/DWDatabase.h
- Changed the #else to #elif HAVE_TR1_HASHMAP. I think this is
correct... There are a number of possible hash map settings
(gnu/tr1/boost/etc, but the original #else lumped them all into
'else' section of the file. My guess is that none of the other
possible options were ever used and thus we didn't see a problem, but
if they had been, then a compilation error would have occurred as I
think the #else section is only applicable for the tr1 hashmap.
M StandAlone/tools/uda2nrrd/uda2nrrd.cc
- Doesn't use a hash map so remove the #include.
M Core/Grid/Variables/VarLabelMatl.h
- The VarLabelMatl is what we use for a hash key, and in the case of
using the boost hash table, we need to have the "hash_value()"
function as a friend of this class. Added it in.
- Removed the unnecessary ';' from the end of a couple of function
definitions.
M Core/Datatypes/sub.mk
- There are a whole bunch of (I believe?) deprecated files in this
directory (used in the old SCIRun). Most of them are not even
compiled (not in the sub.mk file). Removed them from the tree.
- Indented and alphabetized as necessary.
D Core/Datatypes/CurveMesh.h
D Core/Datatypes/cd_templates_fields_3.cc
D Core/Datatypes/TriSurfMesh.h
D Core/Datatypes/CCTensorField.cc
D Core/Datatypes/CMakeLists.txt.bak
D Core/Datatypes/NCVectorField.cc
D Core/Datatypes/NCVectorField.h
D Core/Datatypes/StructHexVolMesh.h
D Core/Datatypes/Mesh.h
D Core/Datatypes/Clipper.cc
D Core/Datatypes/StructCurveMesh.h
D Core/Datatypes/cd_templates_fields_2.cc
D Core/Datatypes/TensorField.cc
D Core/Datatypes/cd_templates_fields_6.cc
D Core/Datatypes/FieldInterfaceAux.cc
D Core/Datatypes/MultiLevelField.h
D Core/Datatypes/PrismVolMesh.h
D Core/Datatypes/NCScalarField.h
D Core/Datatypes/Mesh.cc
D Core/Datatypes/NCTensorField.cc
D Core/Datatypes/Clipper.h
D Core/Datatypes/NCTensorField.h
D Core/Datatypes/ImageMesh.h
D Core/Datatypes/cd_templates.cc
D Core/Datatypes/MaskedLatVolMesh.h
D Core/Datatypes/cd_templates_fields_1.cc
D Core/Datatypes/CCVectorField.h
D Core/Datatypes/cd_templates_fields_5.cc
D Core/Datatypes/TensorField.h
D Core/Datatypes/LatVolMesh.h
D Core/Datatypes/GenericField.h
D Core/Datatypes/Field.cc
D Core/Datatypes/HexVolMesh.h
D Core/Datatypes/FieldInterfaceAux.h
D Core/Datatypes/Field.h
D Core/Datatypes/FieldAlgo.h
D Core/Datatypes/TetVolMesh.h
D Core/Datatypes/FieldIterator.h
D Core/Datatypes/FieldInterface.h
D Core/Datatypes/QuadSurfMesh.h
D Core/Datatypes/cd_templates_fields_0.cc
D Core/Datatypes/CCVectorField.cc
D Core/Datatypes/cd_templates_fields_4.cc
D Core/Datatypes/StructQuadSurfMesh.h
D Core/Datatypes/CCScalarField.h
D Core/Datatypes/CCTensorField.h
- All these files were from the old SCIRun days and are not used now.
Cleaning them out of the repository.
32 lines of code changed in 1 file:
Some housekeeping on GPU code in Unified Scheduler.
56 lines of code changed in 2 files:
(23 more)