grdfs – parallel RDFS reasoning for CPU and GPU
grdfs is an RDFS reasoner that uses OpenCL for fine-grained parallelism. It can thus exploit massively parallel hardware such as modern GPUs but also runs well on CPUs. Currently it supports the following features:
- OpenCL implementation of most used RDFS entailment rules.
- In-memory storage of entailed triples.
- Writing all or only entailed triples to stdout.
- Including RDFS axiomatic triples
- On-device removal of global and local duplicates (local duplicate removal currently only works on GPU devices).
- grdfs uses the turtle parser from RDF3-X, it thus is used as follows:
grdfs -i <turtle_file>
- By default,
grdfswill use the GPU and print some info to
<file.ttl>-- source turtle file (required)
gpu|cpu-- OpenCL device to use (gpu, cpu)
--no-local-dedup-- disable local deduplication
--no-global-dedup-- disable global deduplication
--axioms-- include RDFS axiomatic triples
--time-- print profiling information
--print-triples-- write triples to
stdout(in NTriples format)
- For building grdfs a C++11 compiler is needed. We recommend one of the following:
- Clang 3.1
- GCC 4.7
- On Linux, the AMD APP SDK must be installed
- Mac OS X:
brew install boost --with-c++11
sudo apt-get install libboost-dev libboost-program-options-dev
- Mac OS X:
- Mac OS X: use provided Xcode project or type
- Linux: type
- Complete rule implementation
- Using multiple OpenCL devices
- Partitioning large graphs to fit in device memory