Skip to content

Fix mps_executor_runner build when using cmake#2

Merged
DenisVieriu97 merged 1 commit intomainfrom
dev/denis/fix_bundled_program_mps_cmake
Nov 14, 2023
Merged

Fix mps_executor_runner build when using cmake#2
DenisVieriu97 merged 1 commit intomainfrom
dev/denis/fix_bundled_program_mps_cmake

Conversation

@DenisVieriu97
Copy link
Owner

No description provided.

@DenisVieriu97 DenisVieriu97 merged commit 147e242 into main Nov 14, 2023
DenisVieriu97 added a commit that referenced this pull request Nov 15, 2023
DenisVieriu97 added a commit that referenced this pull request Nov 15, 2023
* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2
DenisVieriu97 added a commit that referenced this pull request Nov 26, 2023
* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2
DenisVieriu97 added a commit that referenced this pull request Nov 30, 2023
DenisVieriu97 added a commit that referenced this pull request Nov 30, 2023
* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2
DenisVieriu97 added a commit that referenced this pull request Nov 30, 2023
* Fix mps_executor_runner build when using cmake

* Add CI scripts to run supported executorch networks through MPS (#1)

* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2

* Don't specialize the executable for the current device (#3)

Co-authored-by: Denis Vieriu <104024078+DenisVieriu97@users.noreply.github.com>

* Update CI script to run test_mps (#4)

* Update CI script to run test_mps

* Update cmdline

* Add lint for mps

* Update lint script

* Update lint script

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Add support for conv1D (fixes w2l)

* Perf imprv - Map conv2D to depthwiseConv3D

* Add support for PyTorch style printing of output tensors

* Fix lint

* Remove unused headers

* Remove unused headers #2

---------

Co-authored-by: Grzegorz George Pawelczak <grzpawelczak@gmail.com>
DenisVieriu97 added a commit that referenced this pull request Dec 1, 2023
* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2
DenisVieriu97 added a commit that referenced this pull request Dec 1, 2023
* Fix mps_executor_runner build when using cmake

* Add CI scripts to run supported executorch networks through MPS (#1)

* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2

* Don't specialize the executable for the current device (#3)

Co-authored-by: Denis Vieriu <104024078+DenisVieriu97@users.noreply.github.com>

* Update CI script to run test_mps (#4)

* Update CI script to run test_mps

* Update cmdline

* Add lint for mps

* Update lint script

* Update lint script

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Add support for conv1D (fixes w2l)

* Perf imprv - Map conv2D to depthwiseConv3D

* Add support for PyTorch style printing of output tensors

* Fix lint

* Remove unused headers

* Remove unused headers #2

---------

Co-authored-by: Grzegorz George Pawelczak <grzpawelczak@gmail.com>
DenisVieriu97 added a commit that referenced this pull request Dec 12, 2023
* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2
DenisVieriu97 added a commit that referenced this pull request Dec 12, 2023
* Fix mps_executor_runner build when using cmake

* Add CI scripts to run supported executorch networks through MPS (#1)

* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2

* Don't specialize the executable for the current device (#3)

Co-authored-by: Denis Vieriu <104024078+DenisVieriu97@users.noreply.github.com>

* Update CI script to run test_mps (#4)

* Update CI script to run test_mps

* Update cmdline

* Add lint for mps

* Update lint script

* Update lint script

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Add support for conv1D (fixes w2l)

* Perf imprv - Map conv2D to depthwiseConv3D

* Add support for PyTorch style printing of output tensors

* Fix lint

* Remove unused headers

* Remove unused headers #2

---------

Co-authored-by: Grzegorz George Pawelczak <grzpawelczak@gmail.com>
DenisVieriu97 added a commit that referenced this pull request Dec 13, 2023
DenisVieriu97 pushed a commit that referenced this pull request Jan 19, 2024
…ty/pybind11" #2 (pytorch#1433)

Summary:
Pull Request resolved: pytorch#1433

Incrementally updating this over

Differential Revision: D52018058

fbshipit-source-id: fc460e8ca59c4e24828f5a199de011004755d29a
DenisVieriu97 added a commit that referenced this pull request Jan 19, 2024
* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2
DenisVieriu97 added a commit that referenced this pull request Jan 19, 2024
* Fix mps_executor_runner build when using cmake

* Add CI scripts to run supported executorch networks through MPS (#1)

* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2

* Don't specialize the executable for the current device (#3)

Co-authored-by: Denis Vieriu <104024078+DenisVieriu97@users.noreply.github.com>

* Update CI script to run test_mps (#4)

* Update CI script to run test_mps

* Update cmdline

* Add lint for mps

* Update lint script

* Update lint script

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Add support for conv1D (fixes w2l)

* Perf imprv - Map conv2D to depthwiseConv3D

* Add support for PyTorch style printing of output tensors

* Fix lint

* Remove unused headers

* Remove unused headers #2

---------

Co-authored-by: Grzegorz George Pawelczak <grzpawelczak@gmail.com>
DenisVieriu97 added a commit that referenced this pull request Jan 19, 2024
DenisVieriu97 added a commit that referenced this pull request Jan 19, 2024
* Add CI scripts to run supported executorch networks through MPS

* Fix CI

* Fix CI #2
DenisVieriu97 pushed a commit that referenced this pull request Mar 30, 2024
Summary:
bypass-github-export-checks

Pull Request resolved: pytorch#2348

Before: Each node contains a `UniformParamsBuffer`.
After: Each node contains a `std::vector<std::shared_ptr<UniformParamsBuffer>>`.

In follow up changes, we will break up parameters to be passed via multiple UniformParamsBuffer, since
1. some are tensor-specific (e.g. image extents) and
2. others are operator-specific (e.g. alpha for binary ops).

Hence, we need **`std::vector`**.

We are adding the methods for #1 in pytorch#2340. Since #1 and #2 will be owned by different objects, we need **pointers**. Since #1 is owned by `vTensor` which is non-copyable, we can't use unique_ptr so we need **`std::shared_ptr`**.
ghstack-source-id: 218195447
exported-using-ghexport

Reviewed By: SS-JIA

Differential Revision: D54691831

fbshipit-source-id: 84ab9f777e247fd56234290ed7f7343b9701c73f
DenisVieriu97 pushed a commit that referenced this pull request Mar 30, 2024
Summary:
bypass-github-export-checks

Pull Request resolved: pytorch#2405

In pytorch#2271, we already added
- IntList
- DoubleList
- BoolList
- ValueList

to the schema and the runtime's Value class. Their serialization was incomplete missing two components:
1. Receiving a list in `torch.fx.Node.args`.
2. Receiving a non-tensor in `torch.fx.Node`.

This change completes #2.

Also, we introduce a specific handler for `getitem` nodes as it is required. Every `function_call` outputting non-tensor `torch.fx.Node` is followed by a special `getitem` `function_call`.
ghstack-source-id: 218541429
exported-using-ghexport

Reviewed By: SS-JIA

Differential Revision: D54789099

fbshipit-source-id: 1e58cbc0246a8c651d95e9ef6707bacb60066e2b
DenisVieriu97 added a commit that referenced this pull request Sep 13, 2024
manuelcandales pushed a commit that referenced this pull request Aug 27, 2025
BNNS copy crashes the process when the dtypes differ
(pytorch#11714).

With the example in this PR
(pytorch#11714), we crash the
process on main. Here is the stack trace from LLDB:

```
Process 19234 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x0000000190ac9388 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`__pthread_kill:
->  0x190ac9388 <+8>:  b.lo   0x190ac93a8    ; <+40>
    0x190ac938c <+12>: pacibsp 
    0x190ac9390 <+16>: stp    x29, x30, [sp, #-0x10]!
    0x190ac9394 <+20>: mov    x29, sp
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x0000000190ac9388 libsystem_kernel.dylib`__pthread_kill + 8
    frame #1: 0x0000000190b0288c libsystem_pthread.dylib`pthread_kill + 296
    frame #2: 0x0000000190a0bc60 libsystem_c.dylib`abort + 124
    frame #3: 0x0000000190910174 libsystem_malloc.dylib`malloc_vreport + 892
    frame #4: 0x0000000190913c90 libsystem_malloc.dylib`malloc_report + 64
    frame #5: 0x000000019091821c libsystem_malloc.dylib`___BUG_IN_CLIENT_OF_LIBMALLOC_POINTER_BEING_FREED_WAS_NOT_ALLOCATED + 32
    frame #6: 0x000000019d2f4084 libBNNS.dylib`___lldb_unnamed_symbol1620 + 564
    frame #7: 0x000000019d2f5bac libBNNS.dylib`___lldb_unnamed_symbol1628 + 680
    frame #8: 0x000000019d69ce48 libBNNS.dylib`BNNSCopy + 616
    frame #9: 0x000000030c74d950 _portable_lib.cpython-310-darwin.so`(anonymous namespace)::copy_using_bnns(executorchcoreml::MultiArray const&, executorchcoreml::MultiArray&) + 188
    frame #10: 0x000000030c74cfdc _portable_lib.cpython-310-darwin.so`(anonymous namespace)::copy(executorchcoreml::MultiArray const&, executorchcoreml::MultiArray&, executorchcoreml::MultiArray::CopyOptions) + 72
    frame #11: 0x000000030c74ceec _portable_lib.cpython-310-darwin.so`executorchcoreml::MultiArray::copy(executorchcoreml::MultiArray&, executorchcoreml::MultiArray::CopyOptions) const + 148
    frame #12: 0x000000030c7488d4 _portable_lib.cpython-310-darwin.so`invocation function for block in (anonymous namespace)::copy(MLMultiArray*, executorchcoreml::MultiArray&) + 376
    frame #13: 0x000000030c748ac8 _portable_lib.cpython-310-darwin.so`invocation function for block in (anonymous namespace)::copy(MLMultiArray*, executorchcoreml::MultiArray&) + 52
    frame #14: 0x000000019ad33f4c CoreML`CoreML::MultiArrayBuffer::getBytesWithHandler(void (void const*, unsigned long) block_pointer) const + 340
    frame pytorch#15: 0x000000019ad34138 CoreML`-[MLMultiArray(ScopedBufferAccess) getBytesWithHandler:] + 152
    frame pytorch#16: 0x000000030c7485ec _portable_lib.cpython-310-darwin.so`(anonymous namespace)::copy(MLMultiArray*, executorchcoreml::MultiArray&) + 296
    frame pytorch#17: 0x000000030c744f68 _portable_lib.cpython-310-darwin.so`(anonymous namespace)::set_outputs(std::__1::vector<executorchcoreml::MultiArray, std::__1::allocator<executorchcoreml::MultiArray>>&, NSArray<MLMultiArray*>*) + 180
```


With this PR, the process succeeds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant