Page MenuHomePhabricator

dtemirbulatov (Dinar Temirbulatov)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 17 2015, 10:06 AM (212 w, 6 d)

Recent Activity

Yesterday

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, Ping.

Tue, Oct 15, 3:00 PM

Mon, Oct 7

dtemirbulatov closed D28907: [SLP] Fix for PR30787: Failure to beneficially vectorize 'copyable' elements in integer binary ops..
Mon, Oct 7, 5:32 AM · Restricted Project

Wed, Oct 2

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Moved finding subtree logic out of getTreeCost() to tryPartialVectorization().

Wed, Oct 2, 6:54 PM

Tue, Oct 1

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Missed one change, removed braces at 3762.

Tue, Oct 1, 11:07 AM

Mon, Sep 30

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mon, Sep 30, 2:01 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mon, Sep 30, 1:55 AM

Sun, Sep 29

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, addressed remarks.

Sun, Sep 29, 5:29 PM

Fri, Sep 20

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Fri, Sep 20, 2:44 AM

Thu, Sep 19

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Thu, Sep 19, 3:32 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Thu, Sep 19, 12:45 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Thu, Sep 19, 12:45 PM

Sep 14 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Sep 14 2019, 1:18 AM

Sep 10 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Ping.

Sep 10 2019, 4:35 PM

Sep 5 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed all remarks. Also, add a solution for the same treeentry is used several times cost calculation at line 3615. Thanks for finding it.

Sep 5 2019, 2:38 AM

Sep 3 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Will it work if the same treeentry is used several times in the tree? For example, in diamond merge? If the treeentry, used several times is not profitable?

I might be wrong, but I don't see any difference in terms of cost calculation for reused operations in partial or full vectorization. I mean, for example, if some group of operations has been vectorized and we plan to use those operations then we still need to calculate those operations costs, extract cost and etc. One another thing we don't want to calculate insert costs for the cost of gathering canceled elements(see getInsertCost()) for reused operations since those operations have been already vectorized anyway, I will fix that.

Sep 3 2019, 5:20 PM

Sep 1 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Added link to the article.

Sep 1 2019, 2:05 PM
dtemirbulatov added a comment to D37648: [SLPVectorizer] Fix PR21780 Expansion of 256 bit vector loads fails to fold into shuffles.

Abandon this? I think this is being handled by the (WIP) Attributor work to support dereference

no, I think I can rebase the change.

Sep 1 2019, 1:55 PM

Aug 31 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Aug 31 2019, 7:32 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed remarks, rebased.

Aug 31 2019, 7:18 PM

Aug 25 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

This was due to deciding to vectorize the whole tree(not partially) while revisiting seeds for partial vectorization. Fixed at line 3789.

oh, the decision for the whole vectorization was due to other changes in the BB.

Aug 25 2019, 8:25 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed regression issue on 401.bzip2 and others. This was due to deciding to vectorize the whole tree(not partially) while revisiting seeds for partial vectorization. Fixed at line 3789.
Here are Spec 2006 INT results:
before:
400.perlbench 9770 249 39.3 *
401.bzip2 9650 311 31.1 *
403.gcc 8050 191 42.1 *
429.mcf 9120 217 42.0 *
445.gobmk 10490 330 31.8 *
456.hmmer 9330 267 35.0 *
458.sjeng 12100 394 30.7 *
462.libquantum 20720 241 85.9 *
464.h264ref 22130 334 66.2 *
471.omnetpp 6250 249 25.1 *
473.astar 7020 284 24.7 *
483.xalancbmk 6900 170 40.7 *
Est. SPECint(R)_base2006 38.5
Est. SPECint2006 Not Run

Aug 25 2019, 7:15 PM

Aug 23 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Some of the results are worse than without the patch. Can we investigate why?

yes, I will focus on 401.bzip2, 429.mcf. but this SLP throttling supposes be off by default and it on here just to show the impact on tests.

Even if it off by default, I don't think it is a good idea to have the code that may lead to regressions when we could avoid that.

Aug 23 2019, 5:06 AM
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Some of the results are worse than without the patch. Can we investigate why?

yes, I will focus on 401.bzip2, 429.mcf. but this SLP throttling supposes be off by default and it on here just to show the impact on tests.

Aug 23 2019, 4:38 AM
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Here is SPEC CPU 2006 INT results:

Aug 23 2019, 3:48 AM

Aug 22 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

ping

Aug 22 2019, 6:51 AM

Aug 19 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

rebased.

Aug 19 2019, 5:51 PM
dtemirbulatov committed rG081c57989e88: [SLP][NFC] Avoid repetitive calls to getSameOpcode() (authored by dtemirbulatov).
[SLP][NFC] Avoid repetitive calls to getSameOpcode()
Aug 19 2019, 5:24 PM
dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

ping

Aug 19 2019, 5:02 AM · Restricted Project
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

I wanted to see if this patch would help with a problem that I'm looking at, but I get this error when trying to build:

Yes, it should be "llvm::" , I will rebase the patch and I am thinking to suggest to you this solution in D64142.

Aug 19 2019, 5:02 AM

Aug 16 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Rebased.

Aug 16 2019, 3:33 PM · Restricted Project
dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Ping.

Aug 16 2019, 12:31 PM · Restricted Project

Aug 15 2019

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

looks good to me.

Aug 15 2019, 4:34 AM · Restricted Project

Aug 14 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

rebased.

Aug 14 2019, 2:01 PM · Restricted Project
dtemirbulatov committed rGda0435a69007: [SLP][NFC] Use pointers to address to ScalarToTreeEntry elements, instead of… (authored by dtemirbulatov).
[SLP][NFC] Use pointers to address to ScalarToTreeEntry elements, instead of…
Aug 14 2019, 12:48 PM
dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

fixed formatting issue at line 1308.

Aug 14 2019, 8:08 AM · Restricted Project
dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed remarks.

Aug 14 2019, 7:31 AM · Restricted Project
dtemirbulatov added inline comments to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Aug 14 2019, 6:13 AM · Restricted Project

Aug 12 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed remarks.

Aug 12 2019, 2:09 PM · Restricted Project

Aug 5 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed all previous remarks, rebased.

Aug 5 2019, 12:57 AM · Restricted Project

Aug 2 2019

dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Ping

Aug 2 2019, 5:38 AM · Restricted Project

Jul 30 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed typo at line 123.

Jul 30 2019, 5:49 AM

Jul 28 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

rebased.

Jul 28 2019, 6:33 AM

Jul 26 2019

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Rebased, fixed previous remarks. Here we still have InstructionsState and I have the full change with the state in TreeEntry but I prefer to break it in several reviews.

Jul 26 2019, 3:47 AM · Restricted Project

Jul 23 2019

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Looks good to me, just tryScheduleBundle() function type. I think we could simplify it later, @RKSimon @ABataev any comments?

Jul 23 2019, 9:00 AM · Restricted Project

Jul 22 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Ping, if approved I am going to commit with "slp-throttling" disabled by default, it is enabled just to show the impact on the test.

Jul 22 2019, 4:06 PM

Jul 15 2019

dtemirbulatov added inline comments to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Jul 15 2019, 3:47 PM · Restricted Project

Jul 13 2019

dtemirbulatov created D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Jul 13 2019, 7:24 PM · Restricted Project

Jul 12 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Ping

Jul 12 2019, 10:32 AM

Jul 6 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 6 2019, 7:00 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased.

Jul 6 2019, 6:54 PM

Jul 3 2019

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Overall, I don't see any issues with linking TreeEntry and SchedularData with lane information.

Jul 3 2019, 4:53 PM · Restricted Project
dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
Jul 3 2019, 4:51 PM · Restricted Project

Jul 2 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, updated incorrect comment in treeTraversal() function.

Jul 2 2019, 11:28 AM

Jun 29 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed issue with visiting the same node twice also added the assertation that we are not visiting any node twice and the assertion that all proposed nodes were visited.

Jun 29 2019, 5:42 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed incorrect algorithm implementation in findSubTree() fundction.

Jun 29 2019, 7:26 AM

Jun 26 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased and addressed previous remarks.

Jun 26 2019, 4:32 PM

Jun 13 2019

dtemirbulatov accepted D60897: [SLP] Look-ahead operand reordering heuristic..

LGTM.

Jun 13 2019, 5:39 AM · Restricted Project

Jun 12 2019

dtemirbulatov added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

hmm, I have another failure with this change on my setup, now it is PR39774.ll. Probably, it might be sort algorithm differents of similar, since it just swap of two inserts. I don't have this failure if PR39774.ll is intact.

Jun 12 2019, 6:07 PM · Restricted Project
dtemirbulatov committed rGb2f45ba1e8ac: [SLP] Update propagate_ir_flags.ll test to check that we do retain the common… (authored by dtemirbulatov).
[SLP] Update propagate_ir_flags.ll test to check that we do retain the common…
Jun 12 2019, 5:19 PM
dtemirbulatov added a comment to D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

@dtemirbulatov It might be worth adding tests that check that we do retain the common subset?

Jun 12 2019, 5:18 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 11:26 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 11:15 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 8:23 AM

Jun 11 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:35 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:27 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:21 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 11:19 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 11:15 AM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

fixed a typo.

Jun 11 2019, 11:08 AM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, fixed all remarks.

Jun 11 2019, 10:32 AM

Jun 6 2019

dtemirbulatov added a comment to D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

@dtemirbulatov It might be worth adding tests that check that we do retain the common subset?

Jun 6 2019, 4:42 PM
dtemirbulatov abandoned D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

Jun 6 2019, 12:06 PM

Jun 5 2019

dtemirbulatov created D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.
Jun 5 2019, 6:57 PM
dtemirbulatov committed rG15c657d13d6f: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973. (authored by dtemirbulatov).
[SLP] Fix regression in broadcasts caused by operand reordering patch D59973.
Jun 5 2019, 8:25 AM

Jun 4 2019

dtemirbulatov accepted D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

LGTM.

Jun 4 2019, 7:06 AM · Restricted Project
dtemirbulatov added a comment to D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

looks good to me.

Jun 4 2019, 7:03 AM · Restricted Project

Jun 3 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 3 2019, 6:01 AM

Jun 1 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Addressing last remarks, rebased.

Jun 1 2019, 9:49 PM

May 28 2019

dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 2:49 PM · Restricted Project
dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 12:54 PM · Restricted Project
dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 12:22 PM · Restricted Project

May 23 2019

dtemirbulatov added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

oh, I notice some regression with the change for AArch64/matmul.ll and AArch64/transpose.ll. Maybe there is a way to isolate it with heuristics?

May 23 2019, 12:00 PM · Restricted Project

May 22 2019

dtemirbulatov added inline comments to D60897: [SLP] Look-ahead operand reordering heuristic..
May 22 2019, 12:28 PM · Restricted Project

May 21 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

I think the first throttling patch should implement a very simple and fast algorithm for finding the cut:

  1. Add new fields to TreeEntry for Cost, ExtractCost and PredecessorsCost.
  2. During getTreeCost() set the TE.Cost and TE.ExtractCost (as you did in an earlier version of the patch if I am not mistaken)
  3. Do a single top-down traversal of the tree in reverse postorder and set the TE.PredecessorsCost equal to the cost of all the predecessor's costs until TE. While doing so, you can compare the cost of cutting just below TE by comparing the gather cost of TE versus the Cost + PredecessorsCost. This is very fast as you only need to visit each TreeEntry node once, so the complexity is linear to the size of the tree.

    For example, in slp-throttle.ll the bundle that needs to be scalarized [%add19, %sub22] has costs of Cost=1, ExtractCost = 0, PredecessorsCost=1 (because of bundle [%mul18, undef]). Cutting below the bundle has a cost of +1, while keeping it vectorized has a cost of +2 (Cost=1 + PredecessorsCost=1).

    This should be good-enough for most simple cases. We can improve it later, if needed, with follow-up patches. What do you think?

yes, Looks good.

May 21 2019, 6:33 AM

May 20 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
May 20 2019, 5:11 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
May 20 2019, 5:08 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased.

May 20 2019, 5:59 AM

May 19 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

ping

May 19 2019, 3:43 PM

May 18 2019

dtemirbulatov committed rG2ff72f665417: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec(). (authored by dtemirbulatov).
[SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec().
May 18 2019, 6:29 PM
dtemirbulatov accepted D61795: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec()..

LGTM.

May 18 2019, 4:41 PM · Restricted Project
dtemirbulatov added a comment to D61795: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec()..

Looks good to me either.

May 18 2019, 7:01 AM · Restricted Project

May 16 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Added comments to cutBranch() and extendSubTree() functions. Removed dupicate variable "I" in extendSubTree() function.

May 16 2019, 6:06 PM
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Again, the slp-throttling is on to just show the impact on SLP tests.

May 16 2019, 12:34 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Looks like fixed all remark, rebased.

May 16 2019, 12:17 PM

May 10 2019

dtemirbulatov accepted D61706: [SLP] Refactor VectorizableTree to use unique_ptr..

LGTM.

May 10 2019, 6:07 AM · Restricted Project

May 9 2019

dtemirbulatov added a comment to D61706: [SLP] Refactor VectorizableTree to use unique_ptr..

looks like "class nodes_iterator" definition at 1856 is not formatted properly.

May 9 2019, 7:45 PM · Restricted Project
dtemirbulatov requested changes to D61706: [SLP] Refactor VectorizableTree to use unique_ptr..
May 9 2019, 7:43 PM · Restricted Project

May 6 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Found typo in the previous upload.

May 6 2019, 5:29 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased. Simplified solution by removing leaves structure and any notion of branches. Left "slp-throttling" flag true by default just to show the impact on SLP tests.

May 6 2019, 5:21 PM

Apr 30 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Implemented tree/graph throttling solution.

Apr 30 2019, 7:49 AM