forked from projectNe10/Ne10
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReleaseNote.txt
161 lines (117 loc) · 4.84 KB
/
ReleaseNote.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
/*
* Copyright 2011-12 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* NE10 Library : ReleaseNote.txt
*/
NE10 SIMD LIBRARY - Release Note
LAST UPDATED ON: 1 / MAR / 2012
========
Contents
========
1. Preface
1-a. License
1-b. Product status
2. Release details
2-a. Product release status
2-b. Functions included
2-c. Test cases and results
3. Installation
3-a. Requirements
3-b. Alternative Approach
==========
1. Preface
==========
1-a. License details
--------------------
NE10 is an open source project released under the Apache License,
Version 2.0 (ALv2). See the file LICENSE for the full text of the ALv2.
1-b. Product status
-------------------
This is the first publicly available version of NE10. This open source project
is actively under development and more functions as well as improved versions of
the available functions will be contributed to the source code.
==================
2. Release details
==================
2-a. Product release status
---------------------------
Version 0.9 dev
Implemented functions have been tested and are believed to be working, but the
complete set of functions planned for the initial release are not in this
release.
2-b. Functions included
---------------------------
NE10 is a software library that provides Linux and Android support for Single
Instruction Multiple Data (SIMD) functionality. In this release, a number of
mathematical functions (mainly vector and scalar operations) have been
implemented for the ARM v7 instruction set architecture as well as ARM NEON
SIMD architecture extensions.
This library has been developed and tested on the following processors:
1) ARM Cortex-A9 with NEON extension
2) ARM Cortex-A8 with NEON extension
The following is a list of currently available functions.
a) Vector-Constant Arithmetic
addc_float, addc_vec2f, addc_vec3f, addc_vec4f,
subc_float, subc_vec2f, subc_vec3f, subc_vec4f,
rsbc_float, rsbc_vec2f, rsbc_vec3f, rsbc_vec4f,
mulc_float, mulc_vec2f, mulc_vec3f, mulc_vec4f,
divc_float, divc_vec2f, divc_vec3f, divc_vec4f,
setc_float, setc_vec2f, setc_vec3f, setc_vec4f,
mlac_float, mlac_vec2f, mlac_vec3f, mlac_vec4f
b) Arithmetic functions over arrays of cst values:
add_float, sub_float, mul_float, div_float, mla_float, abs_float
c) Operations on Vectors:
len_vec2f, len_vec3f, len_vec4f
normalize_vec2f, normalize_vec3f, normalize_vec4f
2-c. Test cases and results
---------------------------
The provided functions are categorized according to the operations that they
perform. Functions in each of these categories accept different types of input
data. Each set is accompanied with a unit test. These unit tests are provided
as part of this library and can be used to verify and benchmark these functions
on a target platform.
===============
3. Installation
===============
3-a. Requirements
-----------------
This release has been built and tested on the following host environments:
1) ARM Versatile Express / Linux linaro 2.6.38-1003
2) BeagleBoard RevC / Linux linaro-developer 3.1.0-4
3) Android AOSP Emulator / Android Open Source Project Toolchain
The source code has been successfully built with the following toolchains:
1) Linaro GCC v4.6.1 ( https://launchpad.net/gcc-linaro/4.6 )
2) Prebuilt GCC toolchain provided with ICS release of ASOP
3-b. Native Building
--------------------
Native building (building directly on an ARM platform) is supported via
make
This will build a libne10.a and libne10.so in the local directory along with
some test binaries.
./nightly.pl
Will build and run a set of tests
3-c. Android Building
To build as part of the Android Open Source Project, copy the release
directory into 'external' within the source directories and build as
normal. This will install the libne10.so library into system/lib on the
final Android OS image, where other applications will be able to access it in
a similar way to other shared libraries. You will need to build with
TARGET_ARCH_VARIANT=armv7-a-neon defined to enable NEON support.
3-d. Alternative Approach
-------------------------
While not supported, the functions within this library can be taken and
incorporated (licensing conflicts permitting) within other projects as is.
Details of how to do this are too project specific to detail here.