Skip to content

Commit 186f0e2

Browse files
committed
Changing the layout of the documentation
- Also changed landing page and tutorials
1 parent 72952ed commit 186f0e2

9 files changed

Lines changed: 419 additions & 593 deletions

File tree

docs/arrayfire.css

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ body, table, div, p, dl
55
font : 400 12px/22px Lucida Grande, Verdana, Geneva, Arial, sans-serif;
66
}
77

8+
p
9+
{
10+
padding-left : 10px;
11+
}
12+
813
/* @group Heading Levels */
914
/* Increase the size of the page title */
1015
.title
@@ -19,9 +24,9 @@ ul
1924
}
2025

2126
/* Slightly pad subsections */
22-
h2
27+
h2, h3, h4, h5
2328
{
24-
padding-left : 20px;
29+
padding-left : 10px;
2530
margin-bottom : 0px;
2631
}
2732

docs/layout.xml

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,15 @@
33
<navindex>
44
<tab type="mainpage" visible="yes" title="" />
55
<tab type="examples" visible="yes" title="" intro=""/>
6-
<tab type="usergroup" url="\ref gettingstarted" visible="yes" title="Getting Started">
7-
<tab type="user" url="\ref gettingstarted_datatypes" visible="yes" title="Basic types and arithmetic"/>
8-
<tab type="user" url="\ref gettingstarted_matrixmanipulation" visible="yes" title="Matrix Multiplication"/>
9-
<tab type="user" url="\ref gettingstarted_indexing" visible="yes" title="Indexing"/>
10-
<tab type="user" url="\ref gettingstarted_linearalgebra" visible="yes" title="Linear Algebra"/>
11-
<tab type="user" url="\ref gettingstarted_convolutions" visible="yes" title="Convolutions"/>
12-
<tab type="user" url="\ref gettingstarted_devicepointer" visible="yes" title="Device Pointer Interface"/>
13-
<tab type="user" url="\ref gettingstarted_timing" visible="yes" title="Timing Code"/>
6+
<tab type="usergroup" visible="yes" title="Tutorials">
7+
<tab type="user" url="\ref gettingstarted" visible="yes" title="Getting Started"/>
8+
<tab type="user" url="\ref matrixmanipulation" visible="yes" title="Matrix Manipulation"/>
9+
<tab type="user" url="\ref indexing" visible="yes" title="Indexing"/>
10+
<tab type="user" url="\ref timing" visible="yes" title="Timing ArrayFire"/>
11+
<tab type="usergroup" url="\ref page_gfor" visible="yes" title="GFOR Usage"/>
1412
</tab>
15-
<tab type="usergroup" url="\ref page_gfor" visible="yes" title="GFOR Usage">
16-
<tab type="user" url="\ref gfor_intro" visible="yes" title="Introduction"/>
17-
<tab type="user" url="\ref gfor" visible="yes" title="Usage"/>
18-
<tab type="user" url="\ref gfor_mul" visible="yes" title="Multiplication Example"/>
19-
<tab type="user" url="\ref gfor_iterator" visible="yes" title="The Iterator"/>
20-
<tab type="user" url="\ref gfor_subscripting" visible="yes" title="Subscripting"/>
21-
<tab type="user" url="\ref gfor_in_loop" visible="yes" title="In-Loop Reuse"/>
22-
<tab type="user" url="\ref gfor_in_place_computation" visible="yes" title="In-Place Computation"/>
23-
<tab type="user" url="\ref gfor_random" visible="yes" title="Random Data Generation"/>
24-
<tab type="user" url="\ref gfor_local_variables" visible="yes" title="Local Variables"/>
25-
<tab type="user" url="\ref gfor_restrictions" visible="yes" title="Restrictions"/>
26-
<tab type="user" url="\ref gfor_memory" visible="yes" title="Memory Considerations"/>
27-
</tab>
28-
<!-- <tab type="pages" visible="yes" title="Tutorials" intro="Short
29-
tutorials on various topics:"/> -->
3013
<tab type="modules" visible="yes" title="Functions" intro="Documentation grouped according to category:"/>
3114
<tab type="user" url="\ref releasenotes" visible="yes" title="Release Notes"/>
32-
<!-- <tab type="namespacemembers" visible="yes" title="Namespace"> -->
33-
<!-- <tab type="namespacemembers" visible="no" title="" intro=""/> -->
34-
<!-- <tab type="namespaces" visible="no" title="" intro=""/> -->
35-
<!-- </tab> -->
36-
<!-- <tab type="classes" visible="yes" title=""> -->
37-
<!-- <tab type="classes" visible="yes" title="" intro=""/> -->
38-
<!-- <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> -->
39-
<!-- <tab type="hierarchy" visible="yes" title="" intro=""/> -->
40-
<!-- <tab type="classmembers" visible="yes" title="" intro=""/> -->
41-
<!-- </tab> -->
42-
<!-- <tab type="files" visible="yes" title=""> -->
43-
<!-- <tab type="files" visible="yes" title="" intro=""/> -->
44-
<!-- <tab type="globals" visible="yes" title="" intro=""/> -->
45-
<!-- </tab> -->
4615
</navindex>
4716

4817
<!-- Layout definition for a class page -->

docs/pages/README.md

Lines changed: 62 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -3,124 +3,119 @@ Overview {#mainpage}
33

44
[TOC]
55

6-
Make your code run faster
7-
-------------------------
6+
## About ArrayFire
87

9-
ArrayFire will make your code run as fast as possible. It beats
10-
efforts to manually write CUDA or OpenCL kernels. It beats compiler
11-
optimizations. It beats other libraries. ArrayFire is the best way to
12-
accelerate your code.
8+
ArrayFire is a high performance software library for parallel computing with an easy-to-use API. Its array based function set makes parallel programming more accessible.
139

14-
ArrayFire developers are amazingly talented at accelerating code;
15-
that's all we do - ever!
10+
## Easy to use
1611

17-
With minimal effort
18-
-------------------
19-
20-
The [array](\ref construct) object is beautifully simple. It's fun to
21-
use!
12+
The [array](\ref construct) object is beautifully simple.
2213

2314
Array-based notation effectively expresses computational algorithms in
2415
readable math-resembling notation. You _do not_ need expertise in
25-
parallel programming to use ArrayFire. A few lines of ArrayFire code
16+
parallel programming to use ArrayFire.
17+
18+
A few lines of ArrayFire code
2619
accomplishes what can take 100s of complicated lines in CUDA or OpenCL
2720
kernels.
2821

29-
Save yourself from verbose templates, ineffective and complicated
30-
compiler directives, and time-wasting low-level development. Arrays
31-
are the best possible way to accelerate your code.
32-
33-
On CUDA or OpenCL devices (e.g. GPUs, CPUs, APUs, FPGAs)
34-
--------------------------------------------------------
22+
## ArrayFire is extensive!
3523

36-
ArrayFire supports CUDA and OpenCL capable devices. Each ArrayFire
37-
installation comes with a CUDA version (named 'libafcu') for [NVIDIA
38-
GPUs](https://developer.nvidia.com/cuda-gpus) and an OpenCL version
39-
(named 'libafcl') for [OpenCL
40-
devices](http://www.khronos.org/conformance/adopters/conformant-products#opencl).
24+
#### Support for multiple domains
4125

42-
You can easily switch between CUDA or OpenCL with ArrayFire, without
43-
changing your code.
26+
ArrayFire contains [hundreds of functions](modules.htm) across various domains including:
27+
- [Matrix Arithmetic]()
28+
- [Vector Algorithms]()
29+
- [Signal Processing]()
30+
- [Linear Algebra]()
31+
- [Statistics]()
32+
- [Image Processing and Computer Vision]()
33+
- and more.
4434

45-
For common science, engineering, and financial functions
46-
------------------------------------------------------------
47-
48-
ArrayFire contains [hundreds of functions](modules.htm) for matrix
49-
arithmetic, signal processing, linear algebra, statistics, image
50-
processing, and more. Each function is hand-tuned by ArrayFire
35+
Each function is hand-tuned by ArrayFire
5136
developers with all possible low-level optimizations.
5237

53-
For common data shapes, sizes, and types
54-
--------------------------------------------
38+
#### Support for various data types and sizes
5539

5640
ArrayFire operates on common [data shapes and sizes](\ref gettingstarted_indexing),
5741
including vectors, matrices, volumes, and
58-
N-dimensional arrays. It supports common [data types](\ref gettingstarted_datatypes),
42+
43+
It supports common [data types](\ref gettingstarted_datatypes),
5944
including single and double precision floating
6045
point values, complex numbers, booleans, and 32-bit signed and
6146
unsigned integers.
6247

63-
With available integration into CUDA or OpenCL kernel code
64-
---------------------------------------------------------------
48+
#### Extending ArrayFire
6549

6650
ArrayFire can be used as a stand-alone application or integrated with
6751
existing CUDA or OpenCL code. All ArrayFire `arrays` can be
6852
interchanged with other CUDA or OpenCL data structures.
6953

70-
With awesome automatic optimizations
71-
------------------------------------
54+
## Code once, run anywhere!
7255

73-
ArrayFire performs run-time analysis of your code to increase
74-
arithmetic intensity and memory throughput, while avoiding unnecessary
75-
temporary allocations. It has an awesome internal JIT compiler to make
76-
optimizations for you.
56+
With support for x86, ARM, CUDA, and OpenCL devices, ArrayFire supports for a comprehensive list of devices.
57+
58+
Each ArrayFire installation comes with:
59+
- a CUDA version (named 'libafcuda') for [NVIDIA
60+
GPUs](https://developer.nvidia.com/cuda-gpus),
61+
- an OpenCL version (named 'libafopencl') for [OpenCL devices](http://www.khronos.org/conformance/adopters/conformant-products#opencl)
62+
- a CPU version (named 'libafcpu') to fall back to when CUDA or OpenCL devices are not available.
63+
64+
## ArrayFire is highly efficient
65+
66+
#### Vectorized and Batched Operations
7767

78-
With parallel for-loops
79-
-----------------------
68+
ArrayFire supports batched operations on N-dimensional arrays.
69+
Batch operations in ArrayFire are run in parallel ensuring an optimal usage of your CUDA or OpenCL device.
70+
71+
You can get the best performance out of ArrayFire using [vectorization techniques]().
8072

8173
ArrayFire can also execute loop iterations in parallel with
8274
[the gfor function](\ref gfor).
8375

84-
With multi-GPU or multi-device scalability
85-
------------------------------------------
76+
#### Just in Time compilation
77+
78+
ArrayFire performs run-time analysis of your code to increase
79+
arithmetic intensity and memory throughput, while avoiding unnecessary
80+
temporary allocations. It has an awesome internal JIT compiler to make
81+
optimizations for you.
8682

87-
ArrayFire supports easy [multi-GPU or multi-device](\ref device_mat)
88-
scaling.
83+
Read more about how [ArrayFire JIT](\ref jit) can improve the performance in your application.
8984

90-
Simple Example {#simpleexample}
91-
==============
85+
## Simple Example
9286

9387
Here's a live example to let you see ArrayFire code. You create [arrays](\ref
9488
construct) which reside on CUDA or OpenCL devices. Then you can use
9589
[ArrayFire functions](modules.htm) on those [arrays](\ref construct).
9690

97-
<div class="AF_div" style="height: 160px"><pre>
91+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
9892
// sample 40 million points on the GPU
9993
array x = randu(20e6), y = randu(20e6);
10094
array dist = sqrt(x * x + y * y);
101-
|
102-
// pi is ratio of how many fell in the unit circle
103-
array pi = 4.0 * sum(dist < 1) / 20e6;
104-
print(pi);</pre></div>
105-
10695
96+
// pi is ratio of how many fell in the unit circle
97+
float num_inside = sum<float>(dist < 1);
98+
float pi = 4.0 * num_inside / 20e6;
99+
af_print(pi);
100+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107101

108-
Product Support {#support}
109-
===============
102+
## Product Support
110103

111-
Free Community Options
112-
----------------------
104+
#### Free Community Options
113105

114-
* [ArrayFire Forums](http://forums.accelereyes.com) (recommended)
106+
* [ArrayFire mailing list](https://groups.google.com/forum/#!forum/arrayfire-users) (recommended)
115107
* [StackOverflow](http://stackoverflow.com/questions/tagged/arrayfire)
116108

117-
Premium Support
118-
---------------
109+
#### Premium Support
119110

120111
* Phone Support - available for purchase ([request a quote](mailto:sales@arrayfire.com))
121112

122-
Contact Us
123-
----------
113+
#### Contact Us
124114

125115
* If you need to contact us, visit our
126116
[contact us page](http://arrayfire.com/company/#contact).
117+
118+
#### Email
119+
120+
* Engineering: technical@arrayfire.com
121+
* Sales: sales@arrayfire.com

0 commit comments

Comments
 (0)