|
The release notes give users instructions on dealing with many issues not covered in other documentation. The solutions to many common problems are found in the release notes.
1 New Features
Family Data Flow Parameter Setting
The dimensions and data flow parameters of input and output family members can now be individually set for static and cyclic primitives. With this capability, some new types of Gedae primitive boxes using families are possible including:
- Cyclic demulitplexer with family output and multiplexer with family input.
- Concatenation box with a family of input vectors - each vector having a different size.
- Vector partitioning boxes that take an input vector and form a family of output vectors, where the number of families does not evenly divide the size of the input vector.
An example of the new syntax is:
Input: {
stream float [i:m]in(i*2+1);
stream float [i:n]A[N[i]];
}
Output: {
stream float [k:n]out[N[k]/2];
stream float [i:n]x(N[i]+1);
}
Where the notation i:m means that there are m members in the family and the value i is the index of the individual family member (where the index runs from 0 to m-1). The index is a bound variable with a scope that is limited to one declaration. The data flow parameters of a declaration can be expressed as expressions that include the index variable. For input dimensions, the size can be set individually for each family member, as illustrated by input A. The values N[i] are determined by the size of the array connected to each family member. The term N[i] can be used in any other data flow expression or output dimension equation, as illustrated in the example.
New Parameter Evaluation Functions
New sum functions for use in graph parameter and primitive data flow equations have been added.
The functions have the following prototypes:
float sum(float X[], int N)
int sum(int X[], int N)
complex sum(complex X[], int N)
The functions return the sum of the first N elements of the array parameter X. In particular, the integer sum is useful in setting the size of an output vector based on a family of input vectors. For example:
Input: {
stream float [i:m]in[N[i]];
}
Output: {
stream float out[sum(N,m)];
}
Enhancement of Existing Gedae Family Primitives
The following primitives were enhanced using the new family notation:
v_part, v_n_concat, mux and demux.
Improved Detection of Gain Errors
The algorithm used to set the box natural granularities was improved to better detect gain errors in a graph that make it impossible to consistently set the natural granularities of primitives in a schedule. The new algorithm sets all the natural granularities of the boxes - even with a gain error present - making it easier to find the gain error on the flattened graph.
Flattened Graph Gain Error Display
Gain errors detected by the improved gain error detection algorithm are now displayed on the flattened graph as bold arcs. In addition, using button 3 to display the natural granularity of boxes and the number of tokens produced and consumed on inputs and outputs was improved. Therefore, it is now easier to find the source of the gain error.
Flattened Graph Display Enhancements
The positioning of function boxes in the flattened graph was improved to make the flattened graph more compact. In addition, a number of errors in the positioning of box families and boxes with input and output families were corrected.
The routing of arcs in the flattened graph has been improved to make the arcs easier to follow. In particular, arcs going into and out of sub-graphs are now horizontal lines to or from the sub-graph boundary.
Flow Graph Editor Arc Preview
A preview of the arc to be created is now displayed when the user drags mouse button 3. A diagonal line preview is normally shown, and a rectangular preview is shown when the Ctrl key is held down.
Flow Graph Editor Arc Error Checking
The Flow Graph Editor now interactively shows if an arc connection being attempted by the user is legal. If an arc connection is legal, then the arc preview is seen, and the source and destination data items become green. If a connection is illegal, then the arc preview disappears, the source and destination items become red, and the reason the connection is illegal is displayed in the status bar.
Unconnected Host Box Inputs Allowed
It is now possible to have sub-graphs with unconnected host box inputs on a Gedae graph. Permitting unconnected host box inputs allows a user to disconnect host displays (for example, stream/sink/scope1 or vector/sink/v_disp), run the graph without deleting the displays, and thereby maintain their state.
Generate Database for Search Utility
The user may now regenerate the database used by the search utility for
finding boxes in FGlibraries. Regenerating the database adds boxes that local users have written.
Command Program Interface Reference Manual
The new Gedae Command Program Interface Reference Manual that documents all of the data types and function calls used to develop Command Programs is now available online at the Gedae website.
2 Bugs Fixed
The following bugs and problems have been fixed.
SCR1021
Arrays declared in a trigger box Local section were not allocated correctly. This problem has been fixed.
SCR1181
Users have reported that some graphs deadlock. A number of problems associated with graphs deadlocking were fixed.
SCR1105
Changing launch package default file has no effect on default parameter values. No effect is the desired behavior. The behavior is now documented in the Gedae Command Program Interface Reference Manual.
SCR1197
Graphs were not getting rescheduled when some data flow parameters changed. This problem has been fixed.
SCR1198
Windows NT graphs hang. The solution is to reduce task priority of Gedae development environment executable (or Gedae command program). The solution is also documented as a FAQ on the Gedae website, http://www.gedae.com/SUPPORT/FAQ/stops_responding.html
SCR1199
Data declarations using short did not allocate data values correctly. This problem has been fixed.
SCR1200 Real FFT E_Functions Incorrect
The real FFT E_Functions, e_vrfft() and e_vrfftnd() produced one
incorrect value in the output vector. The second floating point value of the output vector was the negative of what it should be. As its final step, this implementation of the FFT calculates the conjugate of the output vector; however, since this real
FFT implementation uses packed data, with the Nyquist point placed in the
imaginary part of the first complex output element, this incorrect sign
error was produced. The real inverse FFT functions (also accessed through
e_vrfft() and e_vrfftnd()) produced a complimentary bug as it calculated the
conjugate of its entire input vector as the first step. These
implementations now skip this special first element when finding the
conjugate.
SCR1201 Instability When Using Popup Menu
The Flow Graph Editor Popup Menus, which were added in version 3.3.2, had a
bug that led to an instability in the editor. A symptom of this bug was
that popup menus would appear when the user clicked on inputs and
outputs of boxes. In addition, segfaults occurred due to this bug in certain arc connecting situations.
SCR1202 Sky e_maxmgv and e_minmgv Functions
The sky_altivec and sky_ppc gave a slightly incorrect value for the index of
the maximal or minimal magnitude value through the e_functions e_maxmgv()
and e_minmgv(). The underlying Sky function uses a 1-based indexing system,
and this value was not corrected to Gedae's standard 0-based indexing.
SCR1203 Errors in Boxes
The following box errors have been corrected:
| Box | Problem |
| ratemod2 | Use of malloc made box less portable |
| mx_cmean | Incorrect stride |
| mx_cselem | Incorrect stride |
| mx_csmg | Input data sometimes corrupted |
| mx_rsmg | Input data sometimes corrupted |
| mx_selem | Granularity problem |
| mx_smaxmgi | Inconsistent with m_smaxmgi for all 0 input |
| mx_smg | Input data sometimes corrupted |
| mx_smgs | Input data sometimes corrupted |
| mx_sqrtsmgs | Input data sometimes corrupted |
| vmx_cmean | Incorrect stride |
| vmx_cselem | Incorrect stride |
SCR1204 DSA With Overlap or Delay
DSA data transfers were not scheduled correctly if the source or destination of the DSA had overlap or delay. This problem has been fixed by automatically inserting copy boxes between the I/O with overlap and the DSA send or receive.
SCR1205 Sky BSP Rerun Problem
To rerun a graph on the same Sky processor, it is no longer necessary to exit Gedae.
SCR1206 Reinstantiating Attached Input Families
Once a graph is attached, anything that causes a primitive box input family to be reinstantiated (such as, deleting an arc to the box or redefining the family index of the source) causes Gedae to crash during scheduling. This problem has been fixed.
3 Known Bugs
The following known bugs are listed by their Software Change Request (SCR) number. Please include the SCR number if you wish to report additional information about this bug.
SCR1016
Unterminated comment causes the Gedae parser to segfault.
SCR1022
Trigger boxes cannot have type long for inputs or outputs.
SCR1038
On NT Gedae uses 100% of the CPU when idle.
SCR1097
The Gedae parser doesn't handle an odd number of quotes (") well.
SCR1168
If a dynamic variable vector input is preceded by a vv_delay, then the graph segfaults during scheduling.
SCR1175
The File->Dump Trace Events to File menu option currently doesn't work correctly. A segfault occurs when a filename is entered that begins with a "/".
SCR1182
Some graphs that worked with primitive boxes having dynamic inputs no longer work. The recommended work around is to use nondet inputs as described in the document "Migrating to Gedae 3.2". Examples of boxes that use nondet inputs correctly are:
- embeddable/var_vector/s_vv
- embeddable/stream/logic/merge
SCR1183
The Firing Granularity Table does not handle large graphs well when
View->Show All Boxes is selected.
SCR1207 String Arrays
Gedae currently allows string array graph parameters to be declared as:
const string X[] = {"hello","world"}
or
string X[i] = [i]Y
where Y is a family of strings. In either case the values so declared are not set correctly and therefore should be considered illegal.
|