Loading README.md +15 −48 Original line number Diff line number Diff line # graph_framework # Quick Start Guide Graph computation framework that supports auto differentiation. graph_framework Graph computation framework that supports auto differentiation. It is designed to allow domain scientists to create cross platform GPU accelerated code. # Dependencies This code makes use of the [NetCDF `C` library](https://www.unidata.ucar.edu/software/netcdf/). On Macs, this requires the latest install of XCode 16.3. # Compiling To compile the code, first clone this repository. A `graph_framework` directory will be created. In this directory create a `build` directory and navigate to it. ``` cd graph_framework mkdir build cd build ``` It's recommended that you use the `ccmake` to configure the build system. From inside the build directory, run the `ccmake` command ## Documentation [graph_framework-docs](https://ornl-fusion.github.io/graph_framework-docs) Documentation for the graph_framework. ## Obtaining the Code To get started clone this repository using the command. ``` ccmake ../ git clone https://github.com/ORNL-Fusion/graph_framework.git ``` Initally, there will be no options. Press the `c` key to configure. During this step, the LLVM software repo is cloned and configured. This may take a while. Once configured, there will be several options. - On Linux systems, you may optionally use CUDA by toggling the `USE_CUDA` option. - On Mac systems, you may optionally use Metal by toggling the `USE_METAL` option. __NOTE__: On Macs using the default system compiler, you will need to change the `CMAKE_CXX_COMPILER` to `clang++`. To do this press the `t` to toggle to the advanced options. Once all the options are configured press the 'c' key again and a generate 'g' option will be available. Pressing the 'g' key will finish generating the make file and close out `ccmake`. One the makefile is created. The code can be built using `make` or optionally built in parallel using `make -j'_[number of parallel intances]_. __NOTE__: To many parallel instances can cause the LLVM build system to hang so it is recommended to limit these to less than 20 depending on the available memory. Unit tests can be run by the `make test` command. An example ray tracing case can be found in `efit_example.sh` of the `graph_driver` directory. ## Compiling the Code For instructions to build the code consult the [build system](https://ornl-fusion.github.io/graph_framework-docs/build_system.html) documentation. This framework uses a [cmake](https://cmake.org) based build system and requires the [NetCDF-C](https://www.unidata.ucar.edu/software/netcdf/) library. graph_framework.xcodeproj/project.pbxproj +2 −0 Original line number Diff line number Diff line Loading @@ -400,6 +400,7 @@ C7DC9EEF2E397BE600524F6F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; C7DC9EF12E3A688F00524F6F /* c_binding_test.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; path = c_binding_test.c; sourceTree = "<group>"; }; C7DD87D32E664B440058BA66 /* code_structure.dox */ = {isa = PBXFileReference; lastKnownFileType = text; path = code_structure.dox; sourceTree = "<group>"; }; C7DD87D42E665E260058BA66 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; }; C7E134492A3CB3EC0083F6A7 /* output.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = output.hpp; sourceTree = "<group>"; }; C7E5643E28A2A16F000F31A2 /* backend_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = backend_test; sourceTree = BUILT_PRODUCTS_DIR; }; C7E5644A28A2A1C5000F31A2 /* dispersion_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dispersion_test; sourceTree = BUILT_PRODUCTS_DIR; }; Loading Loading @@ -638,6 +639,7 @@ isa = PBXGroup; children = ( C7931E7228073BFC0033B488 /* CMakeLists.txt */, C7DD87D42E665E260058BA66 /* README.md */, C79141AD22DA9C0600E0BA0D /* graph_framework */, C7931E6928073BCA0033B488 /* graph_tests */, C7DC9EE32E39768300524F6F /* graph_c_binding */, Loading Loading
README.md +15 −48 Original line number Diff line number Diff line # graph_framework # Quick Start Guide Graph computation framework that supports auto differentiation. graph_framework Graph computation framework that supports auto differentiation. It is designed to allow domain scientists to create cross platform GPU accelerated code. # Dependencies This code makes use of the [NetCDF `C` library](https://www.unidata.ucar.edu/software/netcdf/). On Macs, this requires the latest install of XCode 16.3. # Compiling To compile the code, first clone this repository. A `graph_framework` directory will be created. In this directory create a `build` directory and navigate to it. ``` cd graph_framework mkdir build cd build ``` It's recommended that you use the `ccmake` to configure the build system. From inside the build directory, run the `ccmake` command ## Documentation [graph_framework-docs](https://ornl-fusion.github.io/graph_framework-docs) Documentation for the graph_framework. ## Obtaining the Code To get started clone this repository using the command. ``` ccmake ../ git clone https://github.com/ORNL-Fusion/graph_framework.git ``` Initally, there will be no options. Press the `c` key to configure. During this step, the LLVM software repo is cloned and configured. This may take a while. Once configured, there will be several options. - On Linux systems, you may optionally use CUDA by toggling the `USE_CUDA` option. - On Mac systems, you may optionally use Metal by toggling the `USE_METAL` option. __NOTE__: On Macs using the default system compiler, you will need to change the `CMAKE_CXX_COMPILER` to `clang++`. To do this press the `t` to toggle to the advanced options. Once all the options are configured press the 'c' key again and a generate 'g' option will be available. Pressing the 'g' key will finish generating the make file and close out `ccmake`. One the makefile is created. The code can be built using `make` or optionally built in parallel using `make -j'_[number of parallel intances]_. __NOTE__: To many parallel instances can cause the LLVM build system to hang so it is recommended to limit these to less than 20 depending on the available memory. Unit tests can be run by the `make test` command. An example ray tracing case can be found in `efit_example.sh` of the `graph_driver` directory. ## Compiling the Code For instructions to build the code consult the [build system](https://ornl-fusion.github.io/graph_framework-docs/build_system.html) documentation. This framework uses a [cmake](https://cmake.org) based build system and requires the [NetCDF-C](https://www.unidata.ucar.edu/software/netcdf/) library.
graph_framework.xcodeproj/project.pbxproj +2 −0 Original line number Diff line number Diff line Loading @@ -400,6 +400,7 @@ C7DC9EEF2E397BE600524F6F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; C7DC9EF12E3A688F00524F6F /* c_binding_test.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; path = c_binding_test.c; sourceTree = "<group>"; }; C7DD87D32E664B440058BA66 /* code_structure.dox */ = {isa = PBXFileReference; lastKnownFileType = text; path = code_structure.dox; sourceTree = "<group>"; }; C7DD87D42E665E260058BA66 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; }; C7E134492A3CB3EC0083F6A7 /* output.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = output.hpp; sourceTree = "<group>"; }; C7E5643E28A2A16F000F31A2 /* backend_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = backend_test; sourceTree = BUILT_PRODUCTS_DIR; }; C7E5644A28A2A1C5000F31A2 /* dispersion_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dispersion_test; sourceTree = BUILT_PRODUCTS_DIR; }; Loading Loading @@ -638,6 +639,7 @@ isa = PBXGroup; children = ( C7931E7228073BFC0033B488 /* CMakeLists.txt */, C7DD87D42E665E260058BA66 /* README.md */, C79141AD22DA9C0600E0BA0D /* graph_framework */, C7931E6928073BCA0033B488 /* graph_tests */, C7DC9EE32E39768300524F6F /* graph_c_binding */, Loading