Displaying 9 results from an estimated 9 matches for "quantum_toffoli's".
2016 Dec 14
0
Enabling scalarized conditional stores in the loop vectorizer
...I don’t see vectorization kicking in unless -force-vector-width=<> is specified. Let me know if I am missing something.
-Thx
struct nodeTy
{
unsigned int c1;
unsigned int c2;
unsigned int state;
};
struct quantum_reg
{
struct nodeTy node[32];
unsigned int size;
};
void
quantum_toffoli(int control1, int control2, int target, struct quantum_reg *reg, int n)
{
int i;
int N = reg->size;
for(i=0; i < N; i++)
{
if(reg->node[i].state & ((unsigned int)1 << control1))
if(reg->node[i].state & ((unsigned int)1 << co...
2014 Jan 21
5
[LLVMdev] Loop unrolling opportunity in SPEC's libquantum with profile info
On 16/01/2014, 23:47 , Andrew Trick wrote:
>
> On Jan 15, 2014, at 4:13 PM, Diego Novillo <dnovillo at google.com
> <mailto:dnovillo at google.com>> wrote:
>
>> Chandler also pointed me at the vectorizer, which has its own
>> unroller. However, the vectorizer only unrolls enough to serve the
>> target, it's not as general as the runtime-triggered
2016 Dec 14
2
Enabling scalarized conditional stores in the loop vectorizer
...t nodeTy
>
> {
>
> unsigned int c1;
>
> unsigned int c2;
>
> unsigned int state;
>
> };
>
>
>
> struct quantum_reg
>
> {
>
> struct nodeTy node[32];
>
> unsigned int size;
>
> };
>
>
>
> void
>
> quantum_toffoli(int control1, int control2, int target, struct quantum_reg
> *reg, int n)
>
> {
>
> int i;
>
>
>
> int N = reg->size;
>
> for(i=0; i < N; i++)
>
> {
>
> if(reg->node[i].state & ((unsigned int)1 << control1)...
2016 Dec 14
4
Enabling scalarized conditional stores in the loop vectorizer
...t nodeTy
>
> {
>
> unsigned int c1;
>
> unsigned int c2;
>
> unsigned int state;
>
> };
>
>
>
> struct quantum_reg
>
> {
>
> struct nodeTy node[32];
>
> unsigned int size;
>
> };
>
>
>
> void
>
> quantum_toffoli(int control1, int control2, int target, struct quantum_reg
> *reg, int n)
>
> {
>
> int i;
>
>
>
> int N = reg->size;
>
> for(i=0; i < N; i++)
>
> {
>
> if(reg->node[i].state & ((unsigned int)1 << control1)...
2016 Dec 14
0
Enabling scalarized conditional stores in the loop vectorizer
...I don’t see vectorization kicking in unless -force-vector-width=<> is specified. Let me know if I am missing something.
-Thx
struct nodeTy
{
unsigned int c1;
unsigned int c2;
unsigned int state;
};
struct quantum_reg
{
struct nodeTy node[32];
unsigned int size;
};
void
quantum_toffoli(int control1, int control2, int target, struct quantum_reg *reg, int n)
{
int i;
int N = reg->size;
for(i=0; i < N; i++)
{
if(reg->node[i].state & ((unsigned int)1 << control1))
if(reg->node[i].state & ((unsigned int)1 << co...
2016 Dec 15
0
Enabling scalarized conditional stores in the loop vectorizer
...gt;
>> unsigned int state;
>>
>> };
>>
>>
>>
>> struct quantum_reg
>>
>> {
>>
>> struct nodeTy node[32];
>>
>> unsigned int size;
>>
>> };
>>
>>
>>
>> void
>>
>> quantum_toffoli(int control1, int control2, int target, struct
>> quantum_reg *reg, int n)
>>
>> {
>>
>> int i;
>>
>>
>>
>> int N = reg->size;
>>
>> for(i=0; i < N; i++)
>>
>> {
>>
>> if(reg...
2016 Dec 15
0
Enabling scalarized conditional stores in the loop vectorizer
...I don’t see vectorization kicking in unless -force-vector-width=<> is specified. Let me know if I am missing something.
-Thx
struct nodeTy
{
unsigned int c1;
unsigned int c2;
unsigned int state;
};
struct quantum_reg
{
struct nodeTy node[32];
unsigned int size;
};
void
quantum_toffoli(int control1, int control2, int target, struct quantum_reg *reg, int n)
{
int i;
int N = reg->size;
for(i=0; i < N; i++)
{
if(reg->node[i].state & ((unsigned int)1 << control1))
if(reg->node[i].state & ((unsigned int)1 << co...
2014 Jan 28
2
[LLVMdev] Loop unrolling opportunity in SPEC's libquantum with profile info
...ed to get the performance I'm looking for. Of the three, only one gets far enough in the analysis to decide whether we unroll it or not.
>>
>
> I assume the other two loops are quantum_cnot's <http://sourcecodebrowser.com/libquantum/0.2.4/gates_8c_source.html#l00054> and quantum_toffoli's <http://sourcecodebrowser.com/libquantum/0.2.4/gates_8c_source.html#l00082>.
>
> The problem for the unroller in the loop vectorizer is that it wants to if-convert those loops. The conditional store prevents if-conversion because we can’t introduce a store on a path where there w...
2016 Dec 13
4
Enabling scalarized conditional stores in the loop vectorizer
Hi Michael,
Thanks for testing this on your benchmarks and target. I think the results
will help guide the direction we go. I tested the feature with spec2k/2k6
on AArch64/Kryo and saw minor performance swings, aside from a large (30%)
improvement in spec2k6/libquantum. The primary loop in that benchmark has a
conditional store, so I expected it to benefit.
Regarding the cost model, I think the