Search found 181 matches
- 2024-05-04, 4:57:25
- Forum: forwardcom forum
- Topic: Proposal for symbol lookup in the linker
- Replies: 13
- Views: 2028
Re: Proposal for symbol lookup in the linker
Dynamic linking also leads to bloat. DLL's and .so's are often very big, while only a very small fraction of them are actually used by a typical program. Dynamic libraries in traditional systems are scattered around in memory. This leads to excessive load time for a program that uses many libraries,...
- 2024-05-03, 14:22:30
- Forum: forwardcom forum
- Topic: Proposal for symbol lookup in the linker
- Replies: 13
- Views: 2028
Re: Proposal for symbol lookup in the linker
A module is what comes from an object file. A library can contain multiple modules, each containing a function. Relinking is done statically, not dynamically. The executable file is relinked when one or more library functions need updates. The updated executable file is stored and used again and aga...
- 2024-05-03, 5:08:59
- Forum: forwardcom forum
- Topic: Proposal for symbol lookup in the linker
- Replies: 13
- Views: 2028
Re: Proposal for symbol lookup in the linker
James wrote `f = .. ; g = f ; h = f;` No problem. Each function is supposed to have its own module. The linker will load only the necessary modules. Do you mean g and h are aliases for f, or they are calling f? If they are aliases, they can be in the same module without any costs. If they are callin...
- 2024-02-17, 6:28:54
- Forum: forwardcom forum
- Topic: Fushed push with bounds check
- Replies: 3
- Views: 330
Re: Fushed push with bounds check
The addressing mode with bounds check works only if the array size is fixed and known at compile time. The push instruction will signal an error if writing to inaccessible memory. The push instruction is already quite complex at the hardware level. Adding still more complexity might be critical. It ...
- 2024-01-31, 6:51:29
- Forum: forwardcom forum
- Topic: Proposal for symbol lookup in the linker
- Replies: 13
- Views: 2028
Re: Proposal for symbol lookup in the linker
You posted the same text twice, that's why I removed it.I don't know what happened with the "[redundant text removed]"
- 2024-01-30, 15:58:58
- Forum: forwardcom forum
- Topic: Proposal for symbol lookup in the linker
- Replies: 13
- Views: 2028
Re: Proposal for symbol lookup in the linker
Multi-entrypoint functions are possible in assembly code, but cannot be coded in high level language. They can be called from HLL code, though. I think you are asking for trouble if you want partially compatible libraries with multiple versions of the same function. ForwardCom tries to solve the pro...
- 2024-01-30, 14:11:52
- Forum: forwardcom forum
- Topic: Proposal for symbol lookup in the linker
- Replies: 13
- Views: 2028
Re: Proposal for symbol lookup in the linker
In my experience, dynamic linking is slow, not because of symbol lookup, but because the libraries are many and large. It is not uncommon for an application to load ten DLLs of 1 MB each, and use only 1 kB of each. It will load at least one memory page from each DLL, and usually more. This is a wast...
- 2024-01-29, 5:51:11
- Forum: forwardcom forum
- Topic: Proposal for symbol lookup in the linker
- Replies: 13
- Views: 2028
Re: Proposal for symbol lookup in the linker
Name hashing was actually used in the old OMF object file format used in DOS. This format was not very successful (mostly for other reasons). Some systems today use unsorted name tables, while ELF files often have both a sorted and an unsorted name table. ForwardCom is using sorted name tables and b...
- 2023-11-29, 5:57:43
- Forum: forwardcom forum
- Topic: Dot Product
- Replies: 5
- Views: 23302
Re: Dot Product
A cross product has 3 dimensions. It requires more permutations. Permutations and data movement across vector lanes are expensive in hardware. Therefore, I have no plans to implement an instruction with more dimensions than 2. Augmented multiplication is possible with FMA instructions: Y = a * b dY ...
- 2023-11-26, 8:21:43
- Forum: forwardcom forum
- Topic: SQRT or RSQRT - that is the question
- Replies: 1
- Views: 13263
Re: SQRT or RSQRT - that is the question
Existing instruction sets have several different instructions for fast reciprocal and fast rsqrt with different precisions. It will be a mess if different hardware implementations have different precision for the same instruction. Therefore, I think these have to be optional implementation-specific ...
- 2023-11-26, 8:09:03
- Forum: forwardcom forum
- Topic: Underflow/Overflow in mul_2pow
- Replies: 2
- Views: 13703
Re: Underflow/Overflow in mul_2pow
The main purpose of the mul_2pow instruction is to improve speed. x * 0.25 will take several clock cycles. With optimization on, the compiler or assembler can change x*0.25 to mul_2pow(x, -2) which takes only 1 clock cycle. It would be difficult to do this in a single clock cycle if you want underfl...
- 2023-11-26, 7:47:39
- Forum: forwardcom forum
- Topic: Rounding Mode
- Replies: 2
- Views: 13816
Re: Rounding Mode
I have added the rounding mode "odd if not exact" in the compress instruction because this is needed in a two step reduction: double precision -> single precision -> half precision. Other rounding modes can be added if they are needed. Do you have any good use cases for the rounding modes ...
- 2023-11-26, 7:33:52
- Forum: forwardcom forum
- Topic: Dot Product
- Replies: 5
- Views: 23302
Re: Dot Product
Damian, you need to use this instruction twice for a complex number multiplication or division. First, you calculate the real part of the product and place it in y0, where (y0,y1) is the result vector. Then you calculate the imaginary part and place it in y1, while retaining y0 by using (c0,c1) = (y...
- 2023-07-27, 5:11:22
- Forum: forwardcom forum
- Topic: First evidence of ForwardCom effectiveness
- Replies: 1
- Views: 16023
Re: First evidence of ForwardCom effectiveness
Congratulations with your thesis, Kulasko.
Officially, it is 'just' a bachelor thesis, but in reality it is the result of six years of work. A very impressive achievement!
Thank you for your work. I hope you will continue...
Officially, it is 'just' a bachelor thesis, but in reality it is the result of six years of work. A very impressive achievement!
Thank you for your work. I hope you will continue...
- 2023-03-18, 8:32:44
- Forum: forwardcom forum
- Topic: Should we build a ForwardCom organization?
- Replies: 1
- Views: 15586
Should we build a ForwardCom organization?
Do we need an organization to manage the ForwardCom project? Such an organization could help people get involved, organize online meetings and conferences, facilitate research projects, develop standards, etc. The idea of an organization came up as I was trying to find a solution to the problem of c...
- 2023-02-01, 5:57:39
- Forum: forwardcom forum
- Topic: Proposals for next version
- Replies: 16
- Views: 87888
Re: Proposals for next version
@Moonchild It is too complex for a single instruction. It requires many additions and horizontal data transfer across vector lanes. The latency would depend on the vector length. People could propose a zillion other functions that they would like to implement in hardware, including elementary mathem...
- 2023-01-31, 9:19:39
- Forum: forwardcom forum
- Topic: Proposals for next version
- Replies: 16
- Views: 87888
Re: Proposals for next version
@Moonchild:
Sum scan of an array is a complex instruction with long data-dependent latency. This would require microcode. ForwardCom avoids microcode.
Sum scan of an array is a complex instruction with long data-dependent latency. This would require microcode. ForwardCom avoids microcode.
- 2023-01-30, 6:53:28
- Forum: forwardcom forum
- Topic: Proposals for next version
- Replies: 16
- Views: 87888
Re: Proposals for next version
Good idea, Hubert I have thought about a cheaper solution, though less universal. ForwardCom is intended to avoid memory fragmentation. In small systems and embedded systems you may not need demand paged memory. If you don't have demand paging you don't need to be able to recover from memory access ...
- 2023-01-26, 13:38:46
- Forum: forwardcom forum
- Topic: Proposals for next version
- Replies: 16
- Views: 87888
Re: Proposals for next version
Moonchild wrote:
I don't understand what you mean. The manual explains how to make a horizontal vector sum.vector sum scan instruction
- 2023-01-26, 13:35:39
- Forum: forwardcom forum
- Topic: Bit addressing
- Replies: 8
- Views: 32104
Re: Bit addressing
Moonchild wrote:
There are instructions for set, clear, toggle, and test a single bit or multiple bits. There is bit scan, popcount, and bitfield manipulation. What else do you need?One-off bit operations
- 2023-01-24, 9:58:23
- Forum: forwardcom forum
- Topic: Softcore update
- Replies: 0
- Views: 23912
Softcore update
The FPGA softcore has now been developed to a stage where all integer instructions work. This includes complicated instructions such as: multiplication, multiplication high part, multiply and add, division with a choice of rounding modes, remainder, push/pop a sequence of registers with a choice of ...
- 2022-12-04, 15:13:13
- Forum: forwardcom forum
- Topic: Integer division by zero
- Replies: 4
- Views: 23020
Re: Integer division by zero
Hi Webenson What you propose is indeed the solution I have implemented. Performance counter number 16 will count various errors and show the code address where the first error occurred. This is a cheap solution to implement in hardware. Division by 0 gives INT_MAX, INT_MIN, or UINT_MAX. Returning 0 ...
- 2022-12-03, 6:31:31
- Forum: forwardcom forum
- Topic: Proposals for next version
- Replies: 16
- Views: 87888
Re: Proposals for next version
You are right that speculation is quite expensive in terms of hardware. ForwardCom needs less speculation because there are no numerical error traps. A processor with out-of-order capabilities but no speculation might be attractive. (It could decode both sides of a 2-way branch to reduce pipeline bu...
- 2022-12-02, 8:02:12
- Forum: forwardcom forum
- Topic: Proposals for next version
- Replies: 16
- Views: 87888
Re: Proposals for next version
Hubert, the idea of a priority hint makes sense. A NOP instruction has many unused bits that can be used as various hints. On the other hand, if the compiler knows which instructions should have high priority, it would simply put these instructions first. An out-of-order processor will reorder instr...
- 2022-12-02, 7:41:06
- Forum: forwardcom forum
- Topic: Integer division by zero
- Replies: 4
- Views: 23020
Re: Integer division by zero
Hubert, a % b = a will satisfy a % b == a - (a/b)*b in all cases. There is a modulo instruction, and it is easy to implement because the existing division hardware gives the remainder as well, whether you need it or not. I have considered to make division by 0 give 0, but this would increase the ris...